XML 中为 RecyclerView 设置的背景图片未显示在 Android 中
Background image set for RecyclerView in XML doesn't show in Android
我正在使用 RecyclerView
并尝试使用 android:background="@drawable/soccer_field"
为 XML 中的 RecyclerView 设置背景图片
但由于某种原因,它没有显示。
我尝试为(所有屏幕的)整个布局设置背景图片,我发现 RecyclerView
"hides" 背景图片,所以只有在 RecyclerView 上你才能看到它。
如果我删除 RecyclerView 你可以看到
activity的XML代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Activities.GroupStandingsActivity">
<RelativeLayout
android:id="@+id/standings_columns_relative_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingVertical="2dp">
<TextView
android:id="@+id/player_name_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_marginEnd="2dp"
android:layout_marginRight="2dp"
android:layout_toStartOf="@+id/rating_number_column"
android:layout_toLeftOf="@+id/rating_number_column"
android:ellipsize="end"
android:maxLines="1"
android:paddingStart="60dp"
android:paddingLeft="60dp"
android:text="@string/player_name_column"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
android:textColor="#000000"
android:textSize="22sp" />
<TextView
android:id="@+id/rating_number_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/games_number_column"
android:layout_toLeftOf="@id/games_number_column"
android:ellipsize="end"
android:maxLines="1"
android:paddingHorizontal="10dp"
android:text="@string/rating_column"
android:textColor="#000000"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:id="@+id/games_number_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/wins_number_column"
android:layout_toLeftOf="@id/wins_number_column"
android:ellipsize="end"
android:maxLines="1"
android:paddingHorizontal="21dp"
android:text="@string/games_column"
android:textColor="#000000"
android:textSize="22sp" />
<TextView
android:id="@+id/wins_number_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/losses_number_column"
android:layout_toLeftOf="@id/losses_number_column"
android:ellipsize="end"
android:maxLines="1"
android:paddingHorizontal="15dp"
android:text="@string/wins_column"
android:textColor="#000000"
android:textSize="22sp" />
<TextView
android:id="@+id/losses_number_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/goals_number_column"
android:layout_toLeftOf="@id/goals_number_column"
android:ellipsize="end"
android:maxLines="1"
android:paddingHorizontal="20dp"
android:text="@string/losses_column"
android:textColor="#000000"
android:textSize="22sp" />
<TextView
android:id="@+id/goals_number_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/assists_number_column"
android:layout_toLeftOf="@id/assists_number_column"
android:ellipsize="end"
android:maxLines="1"
android:paddingHorizontal="11dp"
android:text="@string/goals_column"
android:textColor="#000000"
android:textSize="22sp" />
<TextView
android:id="@+id/assists_number_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:ellipsize="end"
android:maxLines="1"
android:paddingLeft="20dp"
android:paddingRight="50dp"
android:text="@string/assists_column"
android:textColor="#000000"
android:textSize="22sp" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/standings_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/soccer_field"
android:layout_below="@+id/standings_columns_relative_layout"
tools:listitem="@layout/standings_item" />
<!-- remember Image by <a href="https://pixabay.com/users/OpenClipart-Vectors-30363/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=145794">OpenClipart-Vectors</a> from <a href="https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=145794">Pixabay</a> -->
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/play_game_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom|end"
android:layout_margin="50dp"
android:src="@drawable/ic_football" />
<!-- remember credit https://www.flaticon.com/free-icon/football_1165187 -->
</RelativeLayout>
实际效果(背景图全屏时):
当预期它也会在 RecyclerView 后面时。
将在 RecycleView 中膨胀的 ViewItem 的背景颜色设置为透明。
显然这个白色背景来自 RecyclerView 的膨胀项目
[player name 0 0 0 0 0 0]
在你的情况下称为 standings_item
。
因此,要显示 RecyclerView 背景,您必须从单人游戏视图中移除白色背景 (standings_item),这里最好的选择不是完全移除白色背景,而是给它一个半透明背景- 透明背景颜色以保持视图的可见性,一些颜色示例为:
<color name="dark_overlay">#0D29303F</color>
<color name="very_dark_overlay">#9929303F</color>
我正在使用 RecyclerView
并尝试使用 android:background="@drawable/soccer_field"
为 XML 中的 RecyclerView 设置背景图片
但由于某种原因,它没有显示。
我尝试为(所有屏幕的)整个布局设置背景图片,我发现 RecyclerView
"hides" 背景图片,所以只有在 RecyclerView 上你才能看到它。
如果我删除 RecyclerView 你可以看到
activity的XML代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Activities.GroupStandingsActivity">
<RelativeLayout
android:id="@+id/standings_columns_relative_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingVertical="2dp">
<TextView
android:id="@+id/player_name_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_marginEnd="2dp"
android:layout_marginRight="2dp"
android:layout_toStartOf="@+id/rating_number_column"
android:layout_toLeftOf="@+id/rating_number_column"
android:ellipsize="end"
android:maxLines="1"
android:paddingStart="60dp"
android:paddingLeft="60dp"
android:text="@string/player_name_column"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
android:textColor="#000000"
android:textSize="22sp" />
<TextView
android:id="@+id/rating_number_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/games_number_column"
android:layout_toLeftOf="@id/games_number_column"
android:ellipsize="end"
android:maxLines="1"
android:paddingHorizontal="10dp"
android:text="@string/rating_column"
android:textColor="#000000"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:id="@+id/games_number_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/wins_number_column"
android:layout_toLeftOf="@id/wins_number_column"
android:ellipsize="end"
android:maxLines="1"
android:paddingHorizontal="21dp"
android:text="@string/games_column"
android:textColor="#000000"
android:textSize="22sp" />
<TextView
android:id="@+id/wins_number_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/losses_number_column"
android:layout_toLeftOf="@id/losses_number_column"
android:ellipsize="end"
android:maxLines="1"
android:paddingHorizontal="15dp"
android:text="@string/wins_column"
android:textColor="#000000"
android:textSize="22sp" />
<TextView
android:id="@+id/losses_number_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/goals_number_column"
android:layout_toLeftOf="@id/goals_number_column"
android:ellipsize="end"
android:maxLines="1"
android:paddingHorizontal="20dp"
android:text="@string/losses_column"
android:textColor="#000000"
android:textSize="22sp" />
<TextView
android:id="@+id/goals_number_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/assists_number_column"
android:layout_toLeftOf="@id/assists_number_column"
android:ellipsize="end"
android:maxLines="1"
android:paddingHorizontal="11dp"
android:text="@string/goals_column"
android:textColor="#000000"
android:textSize="22sp" />
<TextView
android:id="@+id/assists_number_column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:ellipsize="end"
android:maxLines="1"
android:paddingLeft="20dp"
android:paddingRight="50dp"
android:text="@string/assists_column"
android:textColor="#000000"
android:textSize="22sp" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/standings_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/soccer_field"
android:layout_below="@+id/standings_columns_relative_layout"
tools:listitem="@layout/standings_item" />
<!-- remember Image by <a href="https://pixabay.com/users/OpenClipart-Vectors-30363/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=145794">OpenClipart-Vectors</a> from <a href="https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=145794">Pixabay</a> -->
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/play_game_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom|end"
android:layout_margin="50dp"
android:src="@drawable/ic_football" />
<!-- remember credit https://www.flaticon.com/free-icon/football_1165187 -->
</RelativeLayout>
实际效果(背景图全屏时):
当预期它也会在 RecyclerView 后面时。
将在 RecycleView 中膨胀的 ViewItem 的背景颜色设置为透明。
显然这个白色背景来自 RecyclerView 的膨胀项目
[player name 0 0 0 0 0 0]
在你的情况下称为 standings_item
。
因此,要显示 RecyclerView 背景,您必须从单人游戏视图中移除白色背景 (standings_item),这里最好的选择不是完全移除白色背景,而是给它一个半透明背景- 透明背景颜色以保持视图的可见性,一些颜色示例为:
<color name="dark_overlay">#0D29303F</color>
<color name="very_dark_overlay">#9929303F</color>