У меня RelativeLayout с CardView, внутри которых размещаются: ImageView, TextView1, TextView2. Эти 3 элемента необходимо разместить так, чтобы ImageView необходимо оставить, TextView1 и TextView2 справа от него. TextView2 необходимо нажать до конца CardView, в то же время быть ниже TextView1 (если TextView1 имеет много текста). Теперь по первым двум элементам вопросов нет, но есть проблемы с 3 (второй TextView): или он прижат к низу, но он перекрывается первым TextView (если первый TextView имеет много текста), или он находится ниже TextView1, но не нажимается ко дну. Макет:

<android.support.v7.widget.CardView
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardBackgroundColor="@color/colorBackground">

        <RelativeLayout
            android:id="@+id/card_view_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="16dp">

            <ImageView
                android:id="@+id/news_photo"
                android:layout_width="@dimen/news_card_view_width"
                android:layout_height="@dimen/news_card_view_height"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:layout_marginEnd="16dp"
                android:layout_marginRight="16dp"
                android:contentDescription="@string/news_card_view_photo" />

            <TextView
                android:id="@+id/news_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_toEndOf="@+id/news_photo"
                android:layout_toRightOf="@+id/news_photo"
                android:textSize="16sp" />


            <TextView
                android:id="@+id/news_date"
                android:textColor="@color/text_labels"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_below="@+id/news_title"
                android:layout_toRightOf="@+id/news_photo"
                android:layout_toEndOf="@+id/news_photo"/>

        </RelativeLayout>

    </android.support.v7.widget.CardView>

Что я хочу сделать:

enter image description here

0
Vyacheslav Martynenko 21 Апр 2016 в 23:59

2 ответа

Лучший ответ

Добавьте android:gravity="bottom" в news_date TextView.

 <TextView
                android:id="@+id/news_date"
                android:textColor="@color/text_labels"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_below="@+id/news_title"
                android:layout_toRightOf="@+id/news_photo"
                android:layout_toEndOf="@+id/news_photo"
                android:gravity="bottom"/>
1
Shadab Ansari 21 Апр 2016 в 21:13

Вместо этого вы можете использовать LinearLayout. Имейте горизонтальный LinearLayout с вашим ImageView и вертикальный LinearLayout, содержащий TextView1 и TextView 2.

Затем во внутреннем LinearLayout добавьте View (заполнитель) с весом 1 и высотой 0dp после TextView1, чтобы подтолкнуть TextView2 вниз. Или установите вес для каждого (TextView1, View и TextView2), чтобы соответствующим образом установить пропорции высоты. Смотри ниже:

<LinearLayout
    android:id="@+id/horizontal_linear_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/image_view"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"/>

    <LinearLayout
        android:id="@+id/vertical_linear_layout"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="vertical">

        <TextView
            android:id="@+id/text_view_1"
            android:layout_width="wrap_content"
            android:layout_height="50dp"/>

        <View
            android:id="@+id/filler"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"/>

        <TextView
            android:id="@+id/text_view_2"
            android:layout_width="wrap_content"
            android:layout_height="50dp"/>

    </LinearLayout>

</LinearLayout>
1
Iain 21 Апр 2016 в 21:48