你知道RecyclerView有多種視圖類型。這意味着您可以根據需要繪製預定義的行。
在聊天的例子中,確切的日期和消息數據將填充在服務器端。你需要畫出準備好的信息(也許是json)。
我希望這個建議可以節省您的時間。
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
class ViewHolder0 extends RecyclerView.ViewHolder {
...
}
class ViewHolder2 extends RecyclerView.ViewHolder {
...
}
@Override
public int getItemViewType(int position) {
// Just as an example, return 0 or 2 depending on position
// Note that unlike in ListView adapters, types don't have to be contiguous
return position % 2 * 2;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType) {
case 0: return new ViewHolder0(...);
case 2: return new ViewHolder2(...);
...
}
}
}
是的,我想這是確實的方式。我只是想,也許我能以不同的方式處理它。將日期時間變成真正的列表項目會在我的聊天列表中增加一些複雜性,但我認爲它是不可避免的。 – CantThinkOfAnything
你對日期時間的複雜性是正確的。這就是爲什麼他們會在後端部分生成:-) –
它不是日期時間的必要條件,它僅僅是我的列表有超過10個條目類型和相當複雜的邏輯,它使用條目位置來決定哪個條目應該具有哪種類型的信息。僅爲顯示日期添加更多類型會要求我擴展當前的邏輯以包含日期內容:p – CantThinkOfAnything