底部对齐的LinearLayout TextView中的ImageView标题未显示

时间:2018-03-26 07:01:01

标签: android imageview android-linearlayout

我需要实现某种类型的布局。这些布局包含一个ImageView,它是水平RecyclerView的项目布局的一部分,用于显示属于特定类别的电影。

Desired layout screenshot

My current layout screenshot

  

包含ImageView和的RecyclerView的项目布局   TextView标签。

    <?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="4dp"
    android:background="@android:color/black">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imageViewMediaThumbnail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="fitXY"
            android:layout_gravity="top"
            android:src="@mipmap/placeholder_image" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:background="@color/clientMediaThumbnailLabel"
            android:orientation="vertical">


            <TextView
                android:id="@+id/textView2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginTop="16dp"
                android:text="Movie Name"
                android:textColor="@android:color/white" />

        </LinearLayout>

    </LinearLayout>


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

2 个答案:

答案 0 :(得分:0)

试试这段代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white" >

<TextView
    android:id="@+id/movieTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="32sp"
    android:text=""
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:gravity="left"/>

<ImageView
    android:id="@+id/movieImage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@id/movieTitle" />

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/movieTitle"
    android:layout_centerHorizontal="true"
    android:id="@+id/linearLayout">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text=""
        android:id="@+id/textView"
        android:layout_weight="1" 
        android:gravity="right"  />


</LinearLayout>

答案 1 :(得分:0)

通过为图像视图设置20dp的布局底部边距,同时减少TextView的文本大小(以避免显示父图案右边距空间比图像宽),我已经能够找到解决方案。 / p>

将20dp的下边距添加到图像视图使文本视图的文本变为可见。

这是我更新的布局。

    <?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="4dp"
    android:layout_marginRight="4dp"
    android:background="@android:color/black">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/clientMediaThumbnailLabel"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imageViewMediaThumbnail"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scaleType="fitXY"
            android:layout_gravity="top"
            android:src="@mipmap/placeholder_image"
            android:layout_marginBottom="20dp"/>

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:text="Movie Name"
            android:textColor="@android:color/white"
            android:textSize="10sp"
            android:textStyle="bold" />
    </RelativeLayout>


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