在Recyclerview的后面显示水平的大背景

时间:2019-01-27 14:10:58

标签: android android-studio android-recyclerview horizontalscrollview

我有一个很长的背景图像,我想放在一个Recyclerview后面,里面有8个项目(Recyclerview)。这只能通过下面编码的水平滚动视图来实现,但是有没有办法不使用水平滚动视图并获得相同的结果?

<HorizontalScrollView
        android:id="@+id/HSV"
        android:layout_width="wrap_content"
        android:layout_height="match_parent">
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="@drawable/back"
            android:paddingLeft="2.5dp"
            android:paddingRight="2.5dp"
            android:orientation="vertical">

            <android.support.v7.widget.RecyclerView
                android:id="@+id/recycler_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </RelativeLayout>
    </HorizontalScrollView>

使用上面的代码,我得到了所需的输出,但是当我删除了Horizo​​ntalScrollView时,图像的宽度正在压缩并且形状松散,我希望图像在滚动recyclerview时滚动 那就是我想要的照片: ![in Background is the aforementioned image and this eight Item are in recycler view and I want as the items finishing the background image is finishing too. ] 1

2 个答案:

答案 0 :(得分:0)

在布局中进行这样的设计。然后将图像中的卡片布局传递给Android中的适配器。将背景设置为“约束布局或Recyclerview”。 拥有Recyclerview时,无需添加Horizo​​ntal Scrollview。只需将布局管理器作为“水平”传递

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
        android:orientation="vertical"
        android:background="@color/secondaryColor"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    <androidx.recyclerview.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>idget.ConstraintLayout>

答案 1 :(得分:0)

我想知道我的查询是否正确,因此您希望RecyclerView水平滚动。我建议对它们使用LinearLayoutManager,以便可以在LinearLayoutManager的参数中将Scrolling常量传递给Horizo​​ntal。

要阅读有关内容,请继续阅读LinearLayoutManager

当您获得它时,只需在您Java Class中这样做即可。

RecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true));

如果您没有获得想要的YouTube链接,我也为您提供。在这里,您将获得如何实现它的完整演示。 Horizontal RecyclerView

我希望能回答您的查询。谢谢:)