在回收視圖中,主要有3種類型的單元。我已經實現了,通過下面的一段代碼Recycler視圖中的性能問題,同時呈現各種類型的單元
final int TYPE_COMMENT = 10004;
final int TYPE_UPDATE = 10005;
final int TYPE_ACTIVITY = 10006;
public int getItemViewType(int position) {
if(activity.getActivity().getType().equalsIgnoreCase(CHECKIN_COMMENT_STRING)){
return TYPE_COMMENT;
}else if(activity.getActivity().getType().equalsIgnoreCase(CHECKIN_UPDATE_STRIND)){
return TYPE_UPDATE;
}else if(activity.getActivity().getType().equalsIgnoreCase(CHECKIN_HISTORY_STRING)){
return TYPE_ACTIVITY;
}
return TYPE_ACTIVITY;
}
然後當我膨脹的第二one.It與主要5份複雜的佈局問題就來了。每個單元格都有機會與這5個部分中的一個或其組合(具有LinearLayout根,後面跟着一些複雜的小部件)。所以我做了研究,發現我們可以通過以下方式克服它。
- 通過使用visibility(View.GONE),我可以隱藏/顯示所需的部分。
- 定義視圖存根中的每個零件並在需要時對其進行充氣。
- 編程方式添加小部件所需的零件(但我不建議這樣,因爲意見是比較複雜)
定義單獨的電池零件的每個組合,但可能需要5!細胞設計多達120個細胞。所以不可能
你可以請建議哪個更好的方法來做(或建議替代),而性能是我的關鍵約束。
而不是在可視性上玩,嘗試multple ViewHolder? – akhilesh0707
已經使用多個viewholder來呈現主要3種類型的單元格。但是第二種類型需要進一步分類。由於它有120個變體(描述的第4點),它很難創造那麼多觀看者......我是對的嗎? –
管理多個視圖持有者可能很容易,而不是管理可見性,在可見性情況下,您的代碼將更加複雜。 – akhilesh0707