Android 如何约束GridLayout的宽度小于父级的宽度?
我在XML布局文件中定义了一个GridLayout,如下所示:Android 如何约束GridLayout的宽度小于父级的宽度?,android,layout,grid-layout,Android,Layout,Grid Layout,我在XML布局文件中定义了一个GridLayout,如下所示: <GridLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:columnCount="4" android:useDefaultMargins="true" > <Button android:text="ababababababababab
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="4"
android:useDefaultMargins="true" >
<Button android:text="ababababababababababababababababababababab" />
<Button android:text="ababababababababababababababababababababab" />
<Button android:text="ababababababababababababababababababababab" />
</GridLayout>
因为宽度是match_parent,所以我希望GridLayout安排按钮,以便每行只显示所需数量的按钮,以保持行的宽度小于父行的宽度
然而,这不是我看到的结果。三个按钮都显示在第一行中,超出父按钮的宽度,如下图所示。实现我想要的输出的方法是什么
网格布局是一项要求吗?不如改用线性布局,让每个视图的权重相等
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="ababababababababababababababababababababab" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="ababababababababababababababababababababab" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="ababababababababababababababababababababab" />
</LinearLayout>
GridLayout承诺,如果一行中没有剩余的空间,那么子视图将在各行之间回流。我有一个要在网格中显示的动态生成视图列表。我不认为这两个选项会得到这样的结果。那么你不应该使用GridView吗?GridView不提供在特定列中具有不同宽度的灵活性。你可以在布局中包装按钮,并在该布局/列中调整按钮的宽度。注意:当你想使按钮比列小时,这会有所帮助。如果希望按钮跨越两列或更多列,该怎么办?
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow>
<Button android:text="ababababababababababababababababababababab" />
<Button android:text="ababababababababababababababababababababab" />
<Button android:text="ababababababababababababababababababababab" />
</TableRow>
</TableLayout>