多个充气机上的ViewHolder

沃里维

我在ListView上的Viewholder有一个夸张的问题。实施了Viewholder后,充气机会出错,因此消息显示错误。(在图10中,消息不是来自我的。此外,每当我滚动,变成7,4或其他任何东西时,错误的消息都会发生变化,就像它随机充气一样)

我有2种不同的充气机,其中一种用于显示其profileImage,另一种用于我。

这是代码:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

         ViewHolder viewHolder; 
        if (convertView == null) {


        if(messageList.get(position).getSenderRealId() != relevantId)
        {
            convertView = getLayoutInflater().inflate(R.layout.message_detail_row_my_inflater, parent, false);
        }else{
            convertView = getLayoutInflater().inflate(R.layout.message_detail_row_their_inflater, parent, false);
        }

        viewHolder = new ViewHolder();
        viewHolder.messageDateText = (CustomFontTextView) findViewById(R.id.messageDateText);
        viewHolder.profileImageView = (SquareImageView) findViewById(R.id.profileImageView);
        viewHolder.messageBubbleLayout =  (LinearLayout) convertView.findViewById(R.id.messageBubbleLayout);
        viewHolder.messageText = (CustomFontTextView) viewHolder.messageBubbleLayout.findViewById(R.id.message_text);
        viewHolder.messageHourText = (CustomFontTextView) viewHolder.messageBubbleLayout.findViewById(R.id.messageHourText);

        convertView.setTag(viewHolder);
        }else{
            viewHolder = (ViewHolder)convertView.getTag();
        }

        viewHolder.messageText.setText(messageList.get(position).getMessage());
        viewHolder.messageHourText.setText(Constants.hourFormat.format(messageList.get(position).getSendTime()));



        return convertView;

    }

和viewHolderClass:

static class ViewHolder {
    CustomFontTextView messageDateText;
    SquareImageView profileImageView;
    LinearLayout messageBubbleLayout;
    CustomFontTextView messageText;
    CustomFontTextView messageHourText;

}

当前,我仅设置messageHour和messageText,但是除图像以外的所有组件都位于linearlayout(messageBubbleLayout)内,我认为这不会引起问题。

谢谢你的帮助

在此处输入图片说明

托米斯拉夫·诺沃塞莱克(Tomislav Novoselec)

由于您在此处使用两种不同的布局,因此应使用Android的机制来正确地重用convertviews。

在这里查看教程:

http://antoine-merle.com/blog/2013/06/11/making-a-multiple-view-type-adapter-with-annotations/

在您的情况下,您只有两种类型的视图:“ my”和“ their”,因此请重写getViewTypeCount()方法以返回2,并getItemViewType()根据位置返回正确的类型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

充气机有什么区别

来自分类Dev

Android TextInputField充气机错误

来自分类Dev

Android片段中的充气机

来自分类Dev

无法使布局充气机工作

来自分类Dev

如何更改充气机的视图?

来自分类Dev

使用充气机创建Cardview

来自分类Dev

无法解决充气机和容器

来自分类Dev

无法使用Android版式充气机?

来自分类Dev

单击按钮时的充气机布局

来自分类Dev

一个适配器中有多个视图(充气机)

来自分类Dev

ActionbarSherlockBinding支持菜单充气机膨胀错误

来自分类Dev

ArrayAdapter中的错误-布局充气机出现错误

来自分类Dev

检查布局充气机是否存在视图,然后再添加一个视图

来自分类Dev

布局充气机中“附加到根”有什么用?

来自分类Dev

使用列表对演员表进行数组转换并将其传递给充气机

来自分类Dev

在布局充气机中“附加到根”有什么用?

来自分类Dev

将R.layout。*解析为整数值以便在充气机中使用

来自分类Dev

在片段中使用cardView时,布局充气机会发生错误吗?

来自分类Dev

为什么基本参数在布局充气机中出现错误?

来自分类Dev

使用布局充气机创建自定义菜单,如何引用每个组件?

来自分类Dev

不支持在API 20和更高版本的SupportLibrary上运行,并且发生充气机错误

来自分类Dev

无法理解布局充气机?它有什么作用?为什么我们使用它?

来自分类Dev

如何在android片段中保存多个充气布局视图状态?

来自分类Dev

Ansible:同时部署在多个主机上

来自分类Dev

.htaccess共享主机上的多个域

来自分类Dev

Bash:在多个主机上附加文件

来自分类Dev

Docker在单个主机上组成多个实例

来自分类Dev

在多个主机上运行脚本

来自分类Dev

Bash:在多个主机上附加文件

Related 相关文章

热门标签

归档