Как я могу сделать так, чтобы все дочерние представления имели одинаковую длину в макете таблицы? - PullRequest
1 голос
/ 19 апреля 2019
  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

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Проверьте это.

Все будут иметь одинаковую длину в одном ряду.

<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>

Пожалуйста, дайте мне знать, если это помогло.

1 голос
/ 19 апреля 2019

Сделайте это следующим образом:

Предполагая, что @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.Чтобы изменить это, создайте собственный стиль для вашей кнопки или, как в моем примере, установите цвет фона.

...