我创建了一个项目XML文件,我希望将其传递给Adapter
,以便我可以在RecyclerView中显示项目列表。
布局文件包含CardView
,其中包含显示电影海报的ImageView
和显示电影标题的TextView
。
我的问题是,我找不到将TextView
放在ImageView
上的方法,以便在海报上方看到标题。
我的xml文件:
<RelativeLayout
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="wrap_content"
android:layout_margin="@dimen/dimension_value_10"
>
<android.support.v7.widget.CardView
app:cardCornerRadius="@dimen/dimension_value_5"
android:layout_width="match_parent"
android:layout_height="200dp"
android:elevation="@dimen/dimension_value_15"
android:id="@+id/movie_poster_card"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true">
<ImageView
android:id="@id/movie_poster_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="10dp" />
<TextView
android:id="@+id/movie_title_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/movie_poster_card"
android:layout_centerHorizontal="true"
android:gravity="center|start"
android:layout_margin="@dimen/dimension_value_10"
android:paddingLeft="@dimen/dimension_value_10"
android:text="Movie title here"
android:textColor="@color/white"
android:layout_gravity="bottom"
android:textSize="26sp" />
</android.support.v7.widget.CardView>
以下是更明确的设计图像:
答案 0 :(得分:0)
CardView
实际上只是为了生一个孩子。您应该将ImageView
和TextView
包裹在FrameLayout
之类的内容中,并将其作为CardView
子项。
答案 1 :(得分:0)
您可以在 CardView 中使用垂直LinearLayout ,并将textView设为中心..
<android.support.v7.widget.CardView
app:cardCornerRadius="@dimen/dimension_value_5"
android:layout_width="match_parent"
android:layout_height="200dp"
android:elevation="@dimen/dimension_value_15"
android:id="@+id/movie_poster_card"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/movie_title_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/movie_poster_card"
android:layout_centerHorizontal="true"
android:gravity="center"
android:layout_margin="@dimen/dimension_value_10"
android:paddingLeft="@dimen/dimension_value_10"
android:text="Movie title here"
android:textColor="@color/white"
android:layout_gravity="bottom"
android:textSize="26sp" />
<ImageView
android:id="@id/movie_poster_image"
android:layout_width="match_parent"
android:layout_height="200dp"
android:elevation="10dp" />
</LinearLayout>
</android.support.v7.widget.CardView>
答案 2 :(得分:-1)
以相对布局包装imageview和textview,并将高程移动到相对布局容器,以保持您正在寻找的阴影效果。
编辑::
我不确定为什么这会被投票,因为这是正确答案。
为清楚起见,您应将代码更改为:
<android.support.v7.widget.CardView
app:cardCornerRadius="@dimen/dimension_value_5"
android:layout_width="match_parent"
android:layout_height="200dp"
android:elevation="@dimen/dimension_value_15"
android:id="@+id/movie_poster_card"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="10dp" >
<ImageView
android:id="@id/movie_poster_image"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:id="@+id/movie_title_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/movie_poster_card"
android:layout_centerHorizontal="true"
android:gravity="center|start"
android:layout_margin="@dimen/dimension_value_10"
android:paddingLeft="@dimen/dimension_value_10"
android:text="Movie title here"
android:textColor="@color/white"
android:layout_gravity="bottom"
android:textSize="26sp" />
</RelativeLayout>
</android.support.v7.widget.CardView>