在Android中为所有子元素固定宽度

时间:2014-08-13 20:15:00

标签: java android android-layout

如何在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"/> 

3 个答案:

答案 0 :(得分:2)

您考虑过使用listView吗?您可以使用listView以及更清晰的代码库来实现您正在寻找的结果:

List View

答案 1 :(得分:1)

你可以使用for-loop并通过view. getChildAt(index)遍历所有布局的孩子:)

答案 2 :(得分:0)

最可靠的方法:

  1. 编写自定义布局管理器

  2. 或者更容易,选择一个能够满足您需要的现有布局管理器

  3. 在这种情况下,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>
    

    结果如下图所示:

    Table layout