如何使 table 布局中的所有子视图具有相同的长度?
How can I make all the child views have the same length in the table layout?
我使用 android: stretchColumns = "*" 以便 table 的子项都具有相同的宽度。但是,子视图的长度取决于文本的长度。如何让子视图具有相同的大小?
我在 table 布局的末尾添加了一个按钮。我希望此按钮的图像与相邻的 textView 具有相同的高度,同时保持纵横比。我该怎么办?
<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>
这样做:
假设 @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 小一点。要更改此设置,请为您的按钮制作自定义样式,或者像我的示例一样,设置背景颜色。
检查这个。
所有人都将在同一行中共享相同的长度。
<TableRow android:layout_weight="1">
<EditText
android:id="@+id/ET1"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="#ffffff"
android:gravity="center"
android:text="0"
android:layout_weight="0.2"
android:textColor="#000000" />
<EditText
android:id="@+id/ET2"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="#ffffff"
android:gravity="center"
android:text="00"
android:layout_weight="0.2"
android:textColor="#000000" />
<EditText
android:id="@+id/ET3"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="#ffffff"
android:gravity="center"
android:text="0000"
android:layout_weight="0.2"
android:textColor="#000000" />
<EditText
android:id="@+id/ET4"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="#ffffff"
android:gravity="center"
android:text="00000000"
android:layout_weight="0.2"
android:textColor="#000000" />
<Button
android:id="@+id/btSET"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:scaleType="centerInside"
android:layout_weight="0.2"
android:background="@drawable/rounded"/>
</TableRow>
如果有帮助,请告诉我。
我使用 android: stretchColumns = "*" 以便 table 的子项都具有相同的宽度。但是,子视图的长度取决于文本的长度。如何让子视图具有相同的大小?
我在 table 布局的末尾添加了一个按钮。我希望此按钮的图像与相邻的 textView 具有相同的高度,同时保持纵横比。我该怎么办?
<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>
这样做:
假设 @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 小一点。要更改此设置,请为您的按钮制作自定义样式,或者像我的示例一样,设置背景颜色。
检查这个。
所有人都将在同一行中共享相同的长度。
<TableRow android:layout_weight="1">
<EditText
android:id="@+id/ET1"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="#ffffff"
android:gravity="center"
android:text="0"
android:layout_weight="0.2"
android:textColor="#000000" />
<EditText
android:id="@+id/ET2"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="#ffffff"
android:gravity="center"
android:text="00"
android:layout_weight="0.2"
android:textColor="#000000" />
<EditText
android:id="@+id/ET3"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="#ffffff"
android:gravity="center"
android:text="0000"
android:layout_weight="0.2"
android:textColor="#000000" />
<EditText
android:id="@+id/ET4"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_margin="5dp"
android:background="#ffffff"
android:gravity="center"
android:text="00000000"
android:layout_weight="0.2"
android:textColor="#000000" />
<Button
android:id="@+id/btSET"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:scaleType="centerInside"
android:layout_weight="0.2"
android:background="@drawable/rounded"/>
</TableRow>
如果有帮助,请告诉我。