简体   繁体   English

如何在RecyclerView中使用StickHeader制作不同的视图项类型?

[英]How to make different view item types with StickHeader in RecyclerView?

I'm developing an android chat app . 我正在开发一个android 聊天应用程序 How can I make this info bar that indicates for example : " user left the group" or " user changed the group icon", like in the photo below: 我如何使该信息栏显示例如:“ 用户离开了群组”或“ 用户更改了群组图标”,如下图所示:

YELLOW MARKS 黄色标记 屏幕截图

@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
    } 
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM