2

我有一張卡片,除了其他信息可以包含圖像,圖像滑塊(第三方庫)或視頻(YouTubeAPI)。早些時候,我用卡片佈局,所有三個媒體元素(圖像,滑塊,視頻),並根據需要修改其可見性,隱藏不必要的元素,只留下必要的可見元素。Android。在RecyclerView中使用片段是對還是錯?

然後我決定嘗試使用這些片段。這三個片段對於每個項目(請注意,一個類的片段包含所有的邏輯元素,他應該只傳遞參數來初始化,其餘的他會自己做),並嘗試在RecyclerView中使用它。早些時候,我的卡片中有三個元素,但現在我只想將我的正確碎片放在卡片的特殊容器中。

我還讀到RecyclerView中片段的使用是一種不好的做法。問題 - 爲了簡單起見,在這種情況下值得使用片段(這些片段也用於其他Activiti中,現在所有媒體元素的邏輯都移到了它們的片段類別中)。 或者我必須使用舊方案 - 卡片直接包含我動態製作可見/不可見並根據需要填充的所有媒體項目?

enter image description here

+0

的使用片段作爲在不同組件的容器這種情況是不必要的並且使你的結構複雜化。查看DataBinding並使用MVVM。您可以無縫處理物品的可視性,並且與RecyclerView完美地結合在一起。 – AgileNinja

回答

1

我不是完全清楚你的要求修改的意見是什麼。 RecyclerView中的每個片段都是一個ViewHolder。

這可能是值得一讀:

Heterogenous Layouts inside RecyclerView

  • RecyclerView能夠意識到多於一種類型的ViewHolder
+0

我的卡片視圖(回收視圖項目)只能包含一個媒體項目(圖像,圖像滑塊或視頻)。由於我使用回收站視圖 - 我需要創建並重新使用創建的卡片視圖。我正在尋找最好的方式來做到這一點。 – Mikhail

+0

注意:我不想爲每個媒體創建單獨的卡片視圖類型。卡視圖包含未更改的其他視圖。媒體元素只是我的卡片視圖的一部分,它們可能會動態變化(圖片,圖片滑塊或視頻)。 – Mikhail

+0

使用上面的方法可以讓回收者視圖知道三種類型的ViewHolders。爲每個ViewHolder創建三個佈局。現在創建一個具有共享視圖元素的第四個佈局,並在xml中使用標記。 [以重新使用佈局](http://developer.android.com/training/improving-layouts/reusing-layouts.html) – apelsoczi