如何在 android 中动态添加和删除不同的 viewholders(比如 2 个 viewholders)?

How to add and remove different viewholders (say 2 viewholders) dynamically in android?

我正在尝试使用回收器视图创建时间轴。我需要在运行时动态添加和删除 2 种不同类型的 viewholder(注意:不是数据,"ViewHolder!")。 每个 viewholder 代表一组不同的数据和布局。 帮我解决这个问题。

一种解决方法是像这样将两个(所有)较小的项目添加到一个项目中。

<OuterLayout
    android:style="@style/yourStyle">
    <InnerLayout
        android:style="@style/innerStyle1"
        ...interior elements i.e. text views/buttons/>
    <InnerLayout2
        android:style="@style/innerStyle2"
        ...interior elements i.e. text views/buttons/>
</OuterLayout>

在您的 java 代码中,您只需要一个像这样的函数

public static void minimize(LinearLayout layout){
    LinearLayout.LayoutParams size = new LinearLayout.LayoutParams(0,0);
    layout.setLayoutParams(size);
}

您需要从适配器做的就是对您不需要的那个调用最小化。由于 RecyclerView 如何回收视图,您还需要相应的 expand() 函数。您可能必须更改上面的功能才能为您的布局工作。