我在我的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只是其中的兩個),其中大多數是自定義視圖,其佈局我將不得不改變。