Сделать TextView размером с родительский макет - PullRequest
0 голосов
/ 28 июня 2018

У меня есть XML LinearLayout, как показано ниже, и я хочу, чтобы последний TextView в макете соответствовал всей ширине линейного макета. Я добавил drawable в качестве фона для TextView. Вот файл XML (я опустил ненужный код) -

    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent"
    android:id="@+id/received_interaction_row_layout"
    android:layout_height="wrap_content"
    android:foreground="?selectableItemBackground"
    android:focusable="true"
    android:clickable="true"
    android:orientation="vertical"
    android:background="@drawable/rounded_corner_red"
    android:layout_marginStart="20dp"
    android:layout_marginEnd="20dp"
    android:layout_marginTop="8dp"
    android:elevation="3dp"
    android:layout_marginBottom="8dp">
    <TextView
        android:drawableStart="@drawable/ic_contact"
        android:drawingCacheQuality="high"
        android:drawablePadding="15dp" ..... />
    <TextView
        android:layout_marginTop="@dimen/row_padding_vertical"
        android:layout_marginBottom="@dimen/row_padding_vertical"
        android:drawableStart="@drawable/ic_event" ..... />
    <TextView
        android:layout_marginBottom="@dimen/row_padding_vertical"
        android:drawableStart="@drawable/ic_feedback"
        android:drawablePadding="15dp" ...... />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/rounded_bottom_pink"/>
    </LinearLayout>

Вот как это выглядит сейчас - Current Layout

Я хочу удалить отступ последнего TextView (с темным фоном) и сделать его таким же широким, как родительский макет. Я также хочу удалить нижнюю прокладку.

В отрисовываемом фоне есть отступы, но я тоже пытался их удалить, но это не сработало.

РЕДАКТИРОВАТЬ 1 - Ниже приведены то, что я хочу достичь. Обратите внимание на темно-синий фон внизу.

Layout needed

Ответы [ 3 ]

0 голосов
/ 28 июня 2018

Большинство векторных отрисовок могут содержать собственные отступы. Возможно, вам придется изменить ваш rounded_corner_red.xml. проверьте ниже векторный файл

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ff0090" />
<corners
    android:radius="5dp" />
<padding
    android:left="10dp"
    android:top="10dp"
    android:right="10dp"
    android:bottom="10dp" />
</shape>

Вам нужно использовать векторные файлы без отступов, см. Ниже

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ff0090" />
<corners
    android:radius="5dp" />
</shape>
0 голосов
/ 28 июня 2018

Я наконец исправил это. Оказывается, что отступы присутствовали на фоне родительского LinearLayout, который вызывал эту проблему. Нарисованный фон для TextView не содержал отступов, но фон LinearLayout сделал, что и вызвало вышеуказанную проблему. Я удалил отступы из отрисовки «rounded_corner_red», которая является фоном родительского макета.

0 голосов
/ 28 июня 2018

Удалить маржу из родительского LinearLayout. Добавьте эти поля в TextView.

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent"
android:id="@+id/received_interaction_row_layout"
android:layout_height="wrap_content"
android:foreground="?selectableItemBackground"
android:focusable="true"
android:clickable="true"
android:orientation="vertical"
android:background="@drawable/rounded_corner_red"
android:layout_marginTop="8dp"
android:elevation="3dp"
>
<TextView
    android:drawableStart="@drawable/ic_contact"
    android:drawingCacheQuality="high"
    android:layout_marginStart="20dp"
    android:layout_marginEnd="20dp"
    android:drawablePadding="15dp" ..... />
<TextView
    android:layout_marginTop="@dimen/row_padding_vertical"
    android:layout_marginBottom="@dimen/row_padding_vertical"
    android:layout_marginStart="20dp"
    android:layout_marginEnd="20dp"
    android:drawableStart="@drawable/ic_event" ..... />
<TextView
    android:layout_marginBottom="@dimen/row_padding_vertical"
    android:drawableStart="@drawable/ic_feedback"
    android:layout_marginStart="20dp"
    android:layout_marginEnd="20dp"
    android:drawablePadding="15dp" ...... />
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:layout_marginBottom="8dp"
    android:background="@drawable/rounded_bottom_pink"/>
</LinearLayout>
...