#android #tablelayout
#Android #tablelayout
Вопрос:
- Я использовал android: stretchColumns = «*», чтобы все дочерние элементы таблицы имели одинаковую ширину. Однако длина дочернего представления зависит от длины текста. Как вы можете сделать так, чтобы дочерние представления имели одинаковый размер?
- Я добавил кнопку в конце макета таблицы. Я хочу, чтобы изображение этой кнопки имело ту же высоту, что и соседние текстовые представления, сохраняя при этом соотношение сторон. Что мне делать?
<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>
Ответ №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 (а также кнопка) имеет небольшой запас, определенный в его стиле. Вот почему он выглядит немного меньше, чем EditText. Чтобы изменить это, создайте пользовательский стиль для своей кнопки или, как в моем примере, задайте цвет фона.
Ответ №2:
Проверьте это.
Все они будут иметь одинаковую длину в одной строке.
<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>
Пожалуйста, дайте мне знать, помогло ли это.