wrap_content или match_parent не дают правильный результат - PullRequest
0 голосов
/ 17 апреля 2020

Друзья, я пытаюсь установить высоту view1 равной высоте заполненного текста textView1, но это не работает. Таким образом, view1 бесконечно длинен и превышает высоту текста, занимает весь экран, но мне нужно до конца текста.

<androidx.cardview.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/cv">
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
         android:weightSum="3"
        android:background="@android:color/white">
         <View
            android:id="@+id/view1"
            android:background="@drawable/rectangle_with_color"
            android:layout_height="wrap_content"
            android:layout_width="16dp" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="25dp"
            android:layout_marginTop="3dp"
            android:text="Не следует, однако забывать, что начало повседневной работы по формированию позиции представляет собой интересный эксперимент проверки новых предложений. С другой стороны реализация намеченных плановых заданий представляет собой интересный эксперимент проверки форм развития."
            android:gravity="top"
            />

    </RelativeLayout>
</androidx.cardview.widget.CardView>

rectangle_with_color. xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid
        android:color="#E41300" />
</shape>

enter image description here

Ответы [ 2 ]

2 голосов
/ 17 апреля 2020

Исправлена ​​ошибка. Пожалуйста, используйте этот код ниже:

<View
            android:id="@+id/view1"
            android:background="@drawable/blank_checkbox"
            android:layout_height="wrap_content"
            android:layout_width="16dp"
            android:layout_alignBottom="@+id/textView1"/> //make this change

Вам необходимо установить свойство alignBottom, чтобы отметить его конец.

Согласно документации:

alignBottom: нижний край этого вида совпадает с нижним краем данного идентификатора вида привязки. Вмещает нижнее поле.

0 голосов
/ 18 апреля 2020

попробуйте этот код:

 <?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/cv">
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weightSum="3"
        android:background="@android:color/white">
            <View
                android:id="@+id/view1"
                android:background="@drawable/rectangle_with_color"
                android:layout_height="wrap_content"
                android:layout_width="16dp"
                android:layout_alignBottom="@+id/textView1"/>

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="25dp"
            android:layout_marginTop="3dp"
            android:text="Не следует, однако забывать, что начало повседневной работы по формированию позиции представляет собой интересный эксперимент проверки новых предложений. С другой стороны реализация намеченных плановых заданий представляет собой интересный эксперимент проверки форм развития."
            android:gravity="top" />

    </RelativeLayout>
</androidx.cardview.widget.CardView>

ScreenShot

...