2015-11-19 54 views
0

我用這個timehop​​ stickyheader庫創建我的recyclerview粘頭:https://github.com/timehop/sticky-headers-recyclerview顯示ItemDecoration時,有沒有在recyclerview

我已經注意到,如果有一個recyclerview內沒有物品時,ItemDecorations將不會出現。我不認爲這是特定於我正在使用的庫,但它通常適用於在空的回收站視圖中使用裝飾的情況。

有沒有辦法強制recyclerview顯示裝飾品,即使在recyclerview中沒有任何東西?我知道我可以向回收站添加一個空白視圖,並「強制」裝飾物出現,但我寧願不這樣做。

這是針對那些用例,例如,您有一個活動顯示活動供稿(例如在Facebook中,您可以看到誰喜歡您的評論等),並且您希望在回收站頂部放置標題這將永遠是粘性的(例如,表示「Activity Feed」的標題)。在數據仍在應用程序中加載的情況下,將會有一個空的回收站視圖,因此標題「Activity Feed」不會顯示。

回答

1

簡答題:不可以。裝飾品是裝飾品。如果沒有物品,就沒有裝飾。

那麼你能做什麼?

正如你已經提到的,一個可能的解決方案是將一個空視圖類型添加到recyclerView。將是一個相當簡單的解決方案,你甚至可以設計整個空白頁面。但是,您需要修改適配器代碼,添加一些ifs,否則它不會真正可重用。

第二種可能性,如果你有一個像「活動頻道」的標題只是不喜歡它:然後

<LinearLayout orientation="vertical"> 
    <TextView text="Header/> 
    <RecyclerView height="match_parent"/> 
</LinearLayout> 

的recyclerview總是會有上邊那個頭。你鏈接的這些粘性裝飾是爲了顯示改變的組頭信息,我不明白爲什麼你需要這樣做。第三,如果這些不是你想要的,最後一個可能的解決方案是擴展RecyclerView並自己添加一些空的狀態管理。如果爲空,則顯示空的視圖。例如如HERE