我在我的RecyclerView中有2个视图类型 - A和B动态添加视图到RecyclerView
A从适配器获取它的数据。 B是一个具有完全不同布局的自定义视图,并使其自己的Web服务调用数据。
所以我总共有2个ViewHolders(一个用于A,一个用于B)。我的要求是仅在成功从服务器获取所有数据时才显示B.因此,最初我将B视图的可见性设置为GONE,并在有数据显示时重置为可见。
这种方法的问题在于,即使在内容为GONE的情况下,B视图的分隔符(使用ItemDecoration设置)也会显示。当B视图加载时,这会在RecyclerView中造成很大的差距。如果它们加载失败,我删除B视图,所以这部分不是问题。
看着ItemDecoration API我认为没有办法有条件地显示分隔符。
所以我正在寻找一种方法来创建RecyclerView之外的B视图,然后将视图本身添加到RecyclerView中。可能吗 ?还是有更好的解决我的问题?
一个可能的解决方法是删除ItemDecoration,而是向视图A和B添加边距,并在收到数据时将B的边距从0更改为较高值。我没有测试过这种方法,但我想避免它,因为我有太多的viewType(A和B只是其中的两个),其中大多数是自定义视图,其布局我将不得不改变。