如何在LinearLayout
内给出所有固定宽度的元素?想象一下,我有一个按钮列表,我会将它们全部居中,并根据具有最大宽度的元素给它们相同的宽度,是否有任何如何使布局管理器动态地执行此操作(我的意思是不要为每个按钮重复代码)?我的代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<Button android:id="@+id/mainStageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:onClick="menuClickListener"
android:text="@string/mainStage"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:onClick="menuClickListener"
android:text="@string/amphiteatre"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:onClick="menuClickListener"
android:text="@string/aula" />
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:onClick="menuClickListener"
android:text="@string/mensa"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:onClick="menuClickListener"
android:text="@string/sportsSchedule"/>
答案 0 :(得分:2)
您考虑过使用listView吗?您可以使用listView以及更清晰的代码库来实现您正在寻找的结果:
答案 1 :(得分:1)
你可以使用for-loop并通过view.
getChildAt(index)
遍历所有布局的孩子:)
答案 2 :(得分:0)
最可靠的方法:
编写自定义布局管理器
或者更容易,选择一个能够满足您需要的现有布局管理器
在这种情况下,TableLayout
是已经具有正确属性的LinearLayout
的子类。
从链接:
列的宽度由该列中具有最宽单元格的行定义
用这个替换线性布局:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is rather long" >
</Button>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium" >
</Button>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Short" >
</Button>
</TableRow>
</TableLayout>
结果如下图所示: