【发布时间】:2018-07-16 21:00:47
【问题描述】:
【问题讨论】:
-
看看这个answer
-
感谢 Khaled Lela 的回答。我已经在聊天中使用 StickHeader 适配器作为日期贴纸,但我想知道是否还有其他方法!
标签: android android-layout chat
【问题讨论】:
标签: android android-layout chat
@Override
public int getItemViewType(int position) {
final Chat chat = getItem(position);
if (chat.getType() == LEFT_CHAT) {
return ITEM_TYPE_LEFT_CHAT;
} else if(chat.getType() == JOIN_CHAT){
return ITEM_TYPE_JOIN_CHAT;
} else if(chat.getType() == CHANGE_CHAT_ICON){
return ITEM_TYPE_CHAGE_CHAT_ICON;
} else {
return ITEM_TYPE_NORMAL;
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == ITEM_TYPE_NORMAL) {
View normalView = LayoutInflater.from(getContext()).inflate(R.layout.my_normal_row, null);
return new MyNormalViewHolder(normalView); // view holder for normal items
} else if (viewType == ITEM_TYPE_LEFT_CHAT) {
View headerRow = LayoutInflater.from(getContext()).inflate(R.layout.left_chat_row, null);
return new MyHeaderViewHolder(headerRow); // view holder for header items
} else if (viewType == ITEM_TYPE_JOIN_CHAT) {
View headerRow = LayoutInflater.from(getContext()).inflate(R.layout.join_chat_row, null);
return new MyHeaderViewHolder(headerRow); // view holder for header items
} else if (viewType == ITEM_TYPE_CHAGE_CHAT_ICON) {
View headerRow = LayoutInflater.from(getContext()).inflate(R.layout.change_chat_icon_row, null);
return new MyHeaderViewHolder(headerRow); // view holder for header items
}
}
【讨论】: