如何在Android中动态添加和删除不同的Viewholder(例如2个Viewholder)?

时间:2018-07-19 18:14:27

标签: android android-recyclerview recycler-adapter android-viewholder

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

1 个答案:

答案 0 :(得分:0)

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

<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()函数。您可能需要更改上面的功能才能适合您的布局。