首页 > 解决方案 > Android:并排显示多行的动态框列表

问题描述

我试图在我的 Android 应用程序中,在几条不同的行上并排显示一个动态确定的正方形列表。当盒子的数量对于给定的方向“太大”时,我希望我的应用程序在下面开始另一行盒子(我知道基本的先决条件:每个正方形有多大,这将如何随着屏幕演变大小,密度,方向......,我还没有确定自己)。然而,现在,我想确定一种高级方法来满足这一需求。我还希望正方形的整个“列表”可以垂直滚动(我知道我需要为此使用 ScrollView)。

本质上,这就是我想要完成的(请原谅糟糕的绘画技巧)。

景观(如果有 6 个方格)

在此处输入图像描述

纵向(如果有 12 个方格)

在此处输入图像描述

对于具有 Web 开发背景的人来说,这似乎是一项相当容易的任务,但是,我发现在 Android 上它比我预期的要困难得多。

考虑到整个任务的复杂性(如果我们正在处理一个中等大小的设备,那么如果你是纵向的,那么在 LinearLayout 中显示 3 个框,然后每隔 3 个,创建一个包含它们的新 LinearLayout;如果你'在横向,那么它是 6;如果它是一个大型设备,它是 4 和 7;...) 在我的脑海中,除了在返回数据和最初创建正方形以及更改设备方向时。

由于我刚刚开始使用本机 Android,因此我将不胜感激。

非常感谢,

克里斯。

标签: android

解决方案


GridLayoutManager mGridLayoutManager;
RecyclerView my_recycler = findViewById(R.id.my_recycler);

对于景观

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
        mGridLayoutManager = new GridLayoutManager(getActivity(), 5);//adjust the number as you like
        my_recycler.setLayoutManager(mGridLayoutManager);
        my_recycler.setAdapter(myadapter);
}

肖像

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
        mGridLayoutManager = new GridLayoutManager(getActivity(), 3);//adjust the number as you like
        my_recycler.setLayoutManager(mGridLayoutManager);
        my_recycler.setAdapter(myadapter);
}

推荐阅读