Frame Layout фиксированные элементы по высоте wrap_content
У меня есть следующий дизайн:
КОД:
<LinearLayout
android:id="@+id/edit_name"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#99000000"
android:weightSum="1">
<FrameLayout
android:background="@color/tabIndicator"
android:layout_width="310dp"
android:layout_gravity="center"
android:clickable="true"
android:layout_height="wrap_content"
android:minHeight="136dp"
android:layout_weight="0.75">
<TextView
android:id="@+id/close_circle"
android:elevation="2dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="X"
android:background="@drawable/oval_corner"
android:backgroundTint="@color/colorPrimary"
android:layout_gravity="top|bottom|right"
android:layout_alignParentEnd="true"
android:paddingLeft="8dp"
android:paddingTop="3dp"
android:paddingRight="8dp"
android:paddingBottom="3dp"
android:textColor="@color/tabIndicator"
android:textStyle="bold"
android:layout_margin="2dp"
android:translationZ="2dp">
</TextView>
<TextView
android:id="@+id/textDescLarga"
android:layout_width="match_parent"
android:layout_height="208dp"
android:text="@string/text_placeholder_benefit"
android:textStyle="normal"
android:textSize="12dp"
android:textColor="@color/textDefault"
android:layout_gravity="bottom|center"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:maxLines = "12"
android:scrollbars="vertical">
</TextView>
<ImageView
android:id="@+id/imageMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/placeholder_benefit"
android:layout_gravity="top|left">
</ImageView>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/textTitulo"
android:layout_gravity="center"
android:layout_marginBottom="0dp"
android:text="Nombre hotel"
android:textAlignment="center"
android:textStyle="bold"
android:textSize="19dp"
android:textColor="@color/cardview_dark_background"/>
</FrameLayout>
ПРОБЛЕМА:
Когда мне нужна автоматическая высота, для текста, увеличивается или уменьшается, я пробовал Fragment Layout layout_height: wrap_content, но текст накладывается на изображение.
Что я делаю неправильно? Есть ли другой способ сделать это?
Спасибо
1 ответ
FrameLayout отображает дочерние элементы в стеке - один поверх другого, если вы не используете layout_gravity для их размещения. FrameLayout обычно используется со всем доступным пространством экрана - layout_height и layout_width установлены в соответствии с родительским.
Ваша проблема в том, что у вас настроен layout_height для переноса контента, он будет накладываться на виджеты один поверх другого. Установите layout_height, чтобы соответствовать родителю. Или еще лучше для вашего случая, используйте RelativeLayout.