在 CardView 中显示 TextView

Displaying TextView in CardView

我有一个问题 - 有时 TextView 的文本会爬出 CardView(视图 ID - 图)。它看起来像这样:

我的布局结构:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/poster"/>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:id="@+id/scrollView"
        android:scrollbars="none"
        android:paddingTop="300dp">

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:cardElevation="@dimen/spacing_xmedium"
                app:cardUseCompatPadding="true">

                <android.support.v7.widget.GridLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@android:color/white"
                    app:columnCount="2">
                    <TextView
                        android:id="@+id/tv_title"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="@dimen/spacing_large"
                        android:layout_marginRight="@dimen/spacing_large"
                        android:layout_marginTop="@dimen/spacing_large"
                        android:textAppearance="@style/TextAppearance.AppCompat.Headline"
                        app:layout_columnSpan="2"
                        app:layout_columnWeight="1"
                        app:layout_gravity="fill_horizontal"/>

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/tv_rating"
                        android:layout_margin="@dimen/spacing_medium"
                        android:textSize="16sp"
                        android:textStyle="bold"
                        android:text="@string/rating"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/rating"
                        android:layout_margin="@dimen/spacing_medium"
                        android:textSize="15sp"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/tv_runtime"
                        android:textSize="16sp"
                        android:textStyle="bold"
                        android:layout_margin="@dimen/spacing_medium"
                        android:text="@string/runtime" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/runtime"
                        android:layout_margin="@dimen/spacing_medium"
                        android:textSize="15sp" />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/tv_release_year"
                        android:layout_margin="@dimen/spacing_medium"
                        android:textSize="16sp"
                        android:textStyle="bold"
                        android:text="@string/release_year"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/release_year"
                        android:layout_margin="@dimen/spacing_medium"
                        android:textSize="15sp"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/tv_country"
                        android:textSize="16sp"
                        android:layout_margin="@dimen/spacing_medium"
                        android:textStyle="bold"
                        android:text="@string/country" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="@dimen/spacing_medium"
                        android:id="@+id/country"
                        android:textSize="15sp" />
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="@dimen/spacing_medium"
                        android:id="@+id/tv_director"
                        android:textSize="16sp"
                        android:textStyle="bold"
                        android:text="@string/director"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="@dimen/spacing_medium"
                        android:id="@+id/director"
                        android:textSize="15sp"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="@dimen/spacing_medium"
                        android:id="@+id/tv_writer"
                        android:textSize="16sp"
                        android:textStyle="bold"
                        android:text="@string/writer"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="@dimen/spacing_medium"
                        android:id="@+id/writers"
                        android:textSize="15sp"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="@dimen/spacing_medium"
                        android:id="@+id/tv_genre"
                        android:textSize="16sp"
                        android:textStyle="bold"
                        android:text="@string/genre"/>
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="@dimen/spacing_medium"
                        android:id="@+id/genre"
                        android:textSize="15sp"/>

                    <android.support.v7.widget.Space
                        app:layout_columnSpan="2"
                        app:layout_columnWeight="1"
                        app:layout_rowWeight="1" />

                    <TextView
                        android:id="@+id/plot"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="@dimen/spacing_xmedium"
                        android:typeface="sans"
                        android:textSize="18sp"
                        app:layout_columnSpan="2"
                        app:layout_columnWeight="1"
                        app:layout_gravity="fill_horizontal" />
                </android.support.v7.widget.GridLayout>
            </android.support.v7.widget.CardView>
        </FrameLayout>
    </ScrollView>
</FrameLayout>

我已将此布局包含在另一个以 CoordinatorLayout 作为根的布局中。 所以,我不知道哪个视图会影响这个 TextView。

在 ID 为 tv_titleplot 的视图中,您已经有 app:layout_gravity="fill_horizontal",将 android:layout_width 设置为 0dp。在 all 中构成 "grid" 本身右侧部分的视图,例如 id 为 rating 的视图,添加 app:layout_gravity="fill_horizontal" 并设置 android:layout_width 作为 0dp.