我遇到了问题 - 有时TextView的文本会从CardView(view id - plot)中爬出来。看起来像这样:
我的布局结构:
<?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。
答案 0 :(得分:3)
在ID为tv_title
和plot
且您已有app:layout_gravity="fill_horizontal"
的视图中,将android:layout_width
设置为0dp
。在所有构成&#34; grid&#34;的正确部分的视图中本身,例如ID为rating
的视图,添加app:layout_gravity="fill_horizontal"
并将android:layout_width
设置为0dp
。