修复了使用Recyclerview滚动时的背景图片

时间:2019-06-05 09:42:23

标签: android android-layout background-image

我有一个Recyclerview,我必须放置滚动时保持稳定的背景图像。

我尝试为父级布局提供背景,还尝试将边框布局与背景图像一起添加。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:background="@drawable/bg_alpha_main"
    android:orientation="vertical">


    <android.support.v7.widget.RecyclerView
        android:id="@+id/submenuRv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:nestedScrollingEnabled="true"
        app:layoutManager="android.support.v7.widget.GridLayoutManager"
        app:spanCount="2"
        tools:listitem="@layout/submenu_items" />

</LinearLayout>

我希望图像在滚动时仍会停留在背景中,但图像会变得与回收站视图高度一样大

3 个答案:

答案 0 :(得分:0)

您可以在ImageView内添加FrameLayout作为顶级子级,这样它就可以作为背景,而RecyclerView作为第二个子级,因此它总是位于{ {1}}。

查看以下布局:

ImageView

然后,如果<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="match_parent" android:src="@drawable/background" android:scaleType="centerCrop" /> <androidx.recyclerview.widget.RecyclerView android:id="@+id/submenuRv" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:nestedScrollingEnabled="true" app:spanCount="2" /> </FrameLayout> 背景仍显示为白色,则可以将其设置为RecyclerView

答案 1 :(得分:0)

我用ConstraintLayout做的是我的布局文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:background="@drawable/full_background"
    tools:showIn="@layout/activity_main">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/transparent"
        tools:listitem="@layout/list_item" />

</android.support.constraint.ConstraintLayout>

根据需要更改RecyclerView属性。以上布局正在从我的应用中删除。希望对您有帮助。

答案 2 :(得分:0)

要使用FrameLayout固定布局背景,请尝试以下代码:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@drawable/bg"
    android:orientation="vertical">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="10dp"
        android:nestedScrollingEnabled="true"
        app:layoutManager="android.support.v7.widget.GridLayoutManager"
        app:spanCount="2"/>
</FrameLayout>

希望它对您有用。