Фоновое изображение для RecyclerView в XML не отображается в Android - PullRequest
0 голосов
/ 29 октября 2019

Я использую RecyclerView и пытаюсь установить фоновое изображение для RecyclerView в XML, используя android:background="@drawable/soccer_field", но по какой-то причине оно не отображается.

У меня естья попытался установить фоновое изображение для всего макета (всего экрана), и я обнаружил, что RecyclerView «скрывает» фоновое изображение, так что только в RecyclerView вы не можете его увидеть. А если я удалю RecyclerView, вы увидите

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&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=145794">OpenClipart-Vectors</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;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>

фактический результат (когда фоновое изображение находится на всем экране):

screenshot

, когда ожидается, что он также будет находиться за RecyclerView.

Ответы [ 2 ]

1 голос
/ 30 октября 2019

Установите цвет фона вашего ViewItem, который надувается в RecycleView, прозрачным.

0 голосов
/ 30 октября 2019

очевидно, этот белый фон происходит от надутого предмета для RecyclerView

[имя игрока 0 0 0 0 0 0]

, который называется standings_item вваш случай.

Таким образом, чтобы отобразить фон RecyclerView, вы должны удалить белый фон из вида одиночной игры (standings_item), и лучшим вариантом здесь будет не полное удаление белого фона, а придание ему полу-прозрачный цвет фона для поддержания видимости вида, некоторые примеры цветов будут:

<color name="dark_overlay">#0D29303F</color>
<color name="very_dark_overlay">#9929303F</color>
...