Java 为什么我的物品超出了我的直线布局?

Java 为什么我的物品超出了我的直线布局?,java,android,android-studio,Java,Android,Android Studio,我有一个包含八个按程序添加的项目。 但正如你们所看到的,这些项目从屏幕的右侧溢出。 这是我的LinearLayout代码: <LinearLayout android:id="@+id/items" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="

我有一个包含八个按程序添加的项目。
但正如你们所看到的,这些项目从屏幕的右侧溢出。

这是我的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">

使用
{ImageView}.setLayoutParams(新的LinearLayout.LayoutParams(184184184)),以编程方式添加LinearLayout中的ImageView
然后
items.addView({ImageView})

只需添加信息,
“@+id/segmento”
在屏幕截图中不可见


谢谢D

尝试将布局宽度设置为与父级匹配。由于您的方向设置为“水平”,而宽度设置为“包裹内容”,因此可能没有考虑屏幕大小。

在以编程方式添加图像视图时,请尝试使用“宽度和包裹内容匹配父对象”:

{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"

线性布局不支持溢出到下一行。
您只能将可用空间划分到子对象上,以便每个子对象都足够小,可以让所有子对象彼此相邻。(为此,请查看布局参数上的
weight
属性)


然而,你真正想要的东西叫做。不久前,谷歌已经将其移植到安卓系统中,并且完全满足您的需求。

没有足够的空间来显示更多…?好的。然后我需要将多余的项目添加到另一行。我是如何做到这一点的?如果你知道一行要容纳多少人,那么在前一行的下方再创建一行。只要根据需要排列就行了。我正在寻找一个更动态的解决方案。像一些XML配置一样,当一行中的项目太多时,将下一个项目放在新行中。结果相同。我的项目不会自动转到新行。请尝试。同样的结果。我需要的是:
foreach LinearLayout line{if(line.Items.Count==5):item.line+=1}
或一些XML配置,以便在项目占用所有空间时,自动将下一个项目放到另一行。嗯,是否尝试翻转宽度和高度?与中一样,将“更改宽度”设置为“换行内容”,并将“布局”设置为“匹配父项”?立即尝试。不幸的是,同样的结果。我想我使用的是正确的布局类型,但是我想知道使用另一种布局是否会给我一个好的结果(?)你可以尝试使用RelativeLayout。在那里你可以指定哪个元素应该在上面,下面,左边,右边等等,就是这样!!现在没事了!谢谢您的回复!:)