如何使所有子视图在表布局中具有相同的长度?

时间:2019-04-19 07:58:27

标签: android tablelayout

  1. 我使用了android:stretchColumns =“ *”,以便表的子项都具有相同的宽度。但是,子视图的长度取决于文本的长度。如何使子视图具有相同的大小?

  2. 我在表格布局的末尾添加了一个按钮。我希望此按钮的图像与相邻的textViews具有相同的高度,同时保持宽高比。我该怎么办?

    <TableRow android:layout_weight="1">
    
        <EditText
            android:id="@+id/ET1"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:background="#ffffff"
            android:gravity="center"
            android:text="0"
            android:textColor="#000000" />            
    
        <EditText
            android:id="@+id/ET2"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:background="#ffffff"
            android:gravity="center"
            android:text="00"
            android:textColor="#000000" />            
    
        <EditText
            android:id="@+id/ET3"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:background="#ffffff"
            android:gravity="center"
            android:text="0000"
            android:textColor="#000000" />            
    
        <EditText
            android:id="@+id/ET4"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:background="#ffffff"
            android:gravity="center"
            android:text="00000000"
            android:textColor="#000000" />
    
        <Button
            android:id="@+id/btSET"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:scaleType="centerInside"
            android:background="@drawable/ui_2_setbtn"/>
    
    </TableRow>
    

enter image description here

1 个答案:

答案 0 :(得分:1)

这样做:

假设@drawable/ui_2_setbtn是向量资产...

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_weight="1">

        <EditText
            android:id="@+id/ET1"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:background="#ffffff"
            android:gravity="center"
            android:layout_gravity="center"
            android:text="0"
            android:textColor="#000000" />

        <EditText
            android:id="@+id/ET2"
            android:layout_width="0dp"
            android:layout_height="40dp"
            android:layout_weight="1"
            android:layout_margin="5dp"
            android:background="#ffffff"
            android:gravity="center"
            android:text="00"
            android:layout_gravity="center"
            android:textColor="#000000" />

        <EditText
            android:id="@+id/ET3"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:background="#ffffff"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="0000"
            android:textColor="#000000" />

        <EditText
            android:id="@+id/ET4"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:background="#ffffff"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="00000000"
            android:textColor="#000000" />

        <ImageButton
            android:id="@+id/btSET"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_gravity="center"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            app:srcCompat="@drawable/ui_2_setbtn"  // or android:src="...", depends if you are using VectorDrawableCompat or not
            android:background="@color/green_dark" /> // only to if you want to make button looks same size as EditText

    </TableRow>

ImageButton(还有Button)在其样式中定义了一些空白。这就是为什么它看起来比EditText小一点的原因。要更改此设置,请为您的按钮设置自定义样式,或者在我的示例中,设置背景色。