我的这个包含八个以编程方式添加的项目。
但正如你们所看到的那样,这些物品从屏幕溢出到右侧。
我的LinearLayout代码:
<LinearLayout
android:id="@+id/items"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/segmento"
android:layout_weight="1"
android:orientation="horizontal"
android:padding="16dp">
LinearLayout中的ImageView以{ImageView}.setLayoutParams(new LinearLayout.LayoutParams(184, 184));
编程方式添加
然后items.addView({ImageView})
只需添加信息,屏幕截图中就会隐藏"@+id/segmento"
。
谢谢! :d
答案 0 :(得分:1)
线性布局不支持溢出到下一行。
您只能划分孩子们的可用空间,这样每个人都可以变得足够小,以使他们彼此相邻。 (为此,请查看布局参数上的weight
属性)。
但是, 真正 想要的内容称为FlexBoxLayout。这已经被谷歌移植到Android很久以前了,并且完全符合您的要求。
答案 1 :(得分:0)
尝试将布局宽度设置为match_parent。由于您的方向设置为水平,宽度设置为wrap_content,因此可能不会考虑屏幕大小。
答案 2 :(得分:0)
以编程方式添加图像视图时,尝试使用MATCH_PARENT作为宽度和WRAP_CONTENT:
{ImageView}.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT
,LinearLayout.LayoutParams.WRAP_CONTENT));
items.addView({ImageView})
这将确保它可以在具有不同屏幕尺寸的设备上工作。如果您对宽度和高度进行硬编码,则可能无法在所有设备上使用。
同样在您的布局中,将线性布局转换为
android:layout_width="match_parent"
android:layout_height="wrap_content"