当前位置: 首页 > 知识库问答 >
问题:

如何合并两个回收器视图,使它们一个接一个地滚动?

崔恺
2023-03-14

我尝试实现这个答案,但只有在两个列表都已预填充的情况下,它才起作用,但在我的例子中,一个列表是预填充的,另一个是动态递增/递减的。

黑盒表示可动态递增/递减的循环列表,其主要作用是显示用户喜爱的字体。

红框代表所有可用的字体,它们是预先填充的。

我的xml代码:

<?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:padding="@dimen/home_section_padding"
    android:background="@color/background"
    android:orientation="vertical"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:layout_width="match_parent"
        android:id="@+id/editText"
        android:textColorHint=" #C0C0C0"
        android:hint="Paste"
        android:textColor="@color/text_color"
        android:inputType="text"
        android:layout_height="wrap_content"/>

    <Button
        android:layout_width="match_parent"
        android:text="Style"
        android:textStyle="bold"
        android:textColor="@color/text_color"
        android:layout_marginBottom="10dp"
        android:fontFamily="serif-monospace"
        android:textAppearance="?android:textAppearanceLarge"
        android:background="@drawable/round_shape_for_button"
        android:onClick="fire"
        android:id="@+id/button"
        android:layout_height="wrap_content"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyelerViewFav"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

    </androidx.recyclerview.widget.RecyclerView>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyelerView"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:layout_height="0dp" />





</LinearLayout>

共有1个答案

饶骁
2023-03-14

有两个选项,您可以使用ConcatAdapter将两个适配器组合在一个适配器中,也可以使用一个RecycerView(推荐)。或者使用NestedScrollView包装两个RecycerViews,并确保将两个RecycerView的高度都设置为Wrap_Content。

但是根据您试图实现的目标,我建议使用ConcatAdapter(adapter1,adapter2)包装两个适配器,并在一个RecycerView上设置新的适配器。您仍然能够自己控制每个适配器添加、删除,并且在已更改的适配器上调用NotifyDataSetChanged将反映RecycerView上的更改。

 类似资料:
  • 问题内容: 我有两个键为s且值为的映射。给定两个s,合并它们的最简单方法是什么,如果两个键相同,则值是两个集合的并集。您可以假设值永远不会为null,并且如果有用的话,我们可以将它们设为s。 问题答案: 我们在谈论实例。在这种情况下,查找值为O(1),因此您只需获取一个映射,然后对该映射的条目进行迭代,看看另一个映射是否包含该键。如果没有,只需添加设置。如果包含密钥,则将两个集合并集(通过将一个集

  • 这是我的适配器 我想每次滚动一个项目。比如你在Instagram上看到多张照片。我怎么能那样做? 谢谢 和我的XML;

  • 我在Scrollview中有Recyclerview 现在,滚动时,layoutStaticContent保持固定在顶部

  • 我写的查询是: 在哪里 我想做的是全名=马克·泰勒。但CDbcommand并没有添加空间,而是以FULL_NAME=MarkTaylor的形式给出输出。

  • 问题内容: 我在一个视图控制器中有两个S。我可以让一个工作,但是当我添加另一个工作时,我的应用程序崩溃了。这是我用于一个选择器视图的代码: 现在,如何让第二个选择器工作?假设我的第二个选择器视图称为(另一个称为)。我尝试在选择器视图方法中复制代码,但它不起作用。 问题答案: 根据我在问题中得到的信息,我想您需要设置数据源和委托方法来处理区分哪个选择器实例正在调用它们的能力。 在选择器视图上使用ta

  • 问题内容: 如果我需要一个接一个地调用此函数, 我知道在jQuery中我可以做类似的事情: 但是,假设我没有使用jQuery,而是要调用: 我应该如何调用此函数以便执行,然后在调用结束后执行,然后执行,然后在调用结束后再调用? 更新: 这仍然无法正常工作: 三个动画同时开始 我的错误在哪里? 问题答案: 在Javascript中,有 同步 和 异步 功能。 同步功能 Javascript中的大多数