ListView在滚动或者是添加项后,在显示时出现混乱是怎么回事?
ListView在滚动或者是添加项后,在显示时出现混乱是怎么回事?

发表者:{xhwangz}xhwangz 1-31 [ 1]

 分享到:
 
 
回答(第1条,共1条,通过审核的共1条)
  在即时聊天的项目中,聊天界面采用ListView来显示已发送或者是已接受的消息。为了美观,把发送的消息和接受的消息用不同的布局方向来布局。也就是每个ListItem的布局不是唯一的,而是需要根据从适配器里传过来的内容用相应的布局。这样在显示时就会出现混乱,本来自己发送的消息,需要显示在左边,接受的消息显示在右边。但是在滚动时,或者在添加一个消息时,就会出现左右混乱的现象。
  解决方法就是:不需要再判断convertView是否为空了,无论它是否为空都需要根据逻辑去重新获得新的布局
  即如下代码所示,把判断代码注释掉。
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
            View view;
            MessageText msg = mListMessages.get(position);
            //if(convertView == null) {
                LayoutInflater inflate = ChatActivity.this.getLayoutInflater();
                if (msg.getName().equals(getString(R.string.chat_self))) {
                    view = inflate.inflate(R.layout.chat_msg_row_me, null);
                } else {
                    view = inflate.inflate(R.layout.chat_msg_row, null);
                }
            //} else {
            //view = convertView;
  //}
  这样数据混乱的问题就得以解决了,但是应用程序性能会降低,所以不建议使用。网上有说通过添加Tag标记可以解决,但不知道怎么做。

回答评级:★★★☆☆☆☆☆☆ 回答者:{geiwww}geiwww 2-2

回答
相关问题:
我是:
本站注册用户
用户名: 密码:
非本站注册用户
我来回答:

回答字数在8000字以内。回答即可得2分,回答被采用后,根据评级可得到相应的积分和智慧果。
比如:回答评级为5,可得150分和15个智慧果。

 

 
 
 
 
 
 
































 

© 版权所有  2001-2024 知识网站
Copyright (C) 2001-2024 allzhishi.com All rights reserved
联系我们 — 电话:15973023232  微信:zhishizaixian  ICP备案号:湘ICP备08003211号-4