Android ListView 滑动的时候数据消失变化
2015-04-24 23:07
447 查看
最近做一个群聊app
1.只有一个布局文件inflate为对应getView中的convertView
2.不同item样式通过数据中对象来区分控制Visiable or Gone
问题是
1.数据变化后调用notifyDataSetChanged,有些数据还是未显示
2.滑动ListView后有时候数据消失了,再滑动可能又出现了
其中聊天页面用的listview,可是当listview上下滑动的时候,有的item内容不显示,有的开始显示滑动回来就没了
使用viewholder重用了之前的view而不是新创建所以需要对view中的不同控件setVisiablity
所以代码中需要对每个控件进行可见性控制
比如这样
1.只有一个布局文件inflate为对应getView中的convertView
2.不同item样式通过数据中对象来区分控制Visiable or Gone
问题是
1.数据变化后调用notifyDataSetChanged,有些数据还是未显示
2.滑动ListView后有时候数据消失了,再滑动可能又出现了
其中聊天页面用的listview,可是当listview上下滑动的时候,有的item内容不显示,有的开始显示滑动回来就没了
使用viewholder重用了之前的view而不是新创建所以需要对view中的不同控件setVisiablity
所以代码中需要对每个控件进行可见性控制
比如这样
<span style="font-size:12px;"><span style="font-size:12px;"> public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub Chat chat = getItem(position); View view; ViewHolder viewHolder; if(convertView == null){ view = LayoutInflater.from(getContext()).inflate(resourceId, null); viewHolder = new ViewHolder(); viewHolder.left_name = (TextView) view.findViewById(R.id.left_user); viewHolder.left_content = (TextView) view.findViewById(R.id.left_msg); viewHolder.left_layout = (RelativeLayout) view.findViewById(R.id.left_layout); viewHolder.right_content = (TextView) view.findViewById(R.id.right_msg); viewHolder.right_layout = (LinearLayout) view.findViewById(R.id.right_layout); view.setTag(viewHolder); } else{ view = convertView; viewHolder = (ViewHolder) view.getTag(); } if((getCount()!=0)&&(chat.getName().equals(CustomApplication.getName()))){ viewHolder.left_layout.setVisibility(View.GONE); viewHolder.right_layout.setVisibility(View.VISIBLE); viewHolder.right_content.setText(chat.getContent()); }else if(getCount()!=0){ viewHolder.left_layout.setVisibility(View.VISIBLE); viewHolder.right_layout.setVisibility(View.GONE); viewHolder.left_name.setText(chat.getName()); viewHolder.left_content.setText(chat.getContent()); } return view; }</span></span>
相关文章推荐
- android ListView 滑动到最底部并且停止滑动时候加载数据
- ListView 滑动时组件数据或图片变化
- Android Listview滑动时不加载数据,停下来时加载数据,让App更优
- Android 中利用ViewFlipper 滑动屏幕切换页面,ListView展示数据
- (原创)使用AsyncTask(带修改线程池方式)+自定义ImageLoader+LRU算法对图片三级缓存及其显示优化(只有在ListView滑动停止的时候才去网络请求获取图片数据)
- Android Listview滑动时不加载数据 停止时加载数据
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失的动画实现
- Android中listview加载数据的时候出现空白页
- Android中ListView滑动时数据混乱
- Android在ListView滑动数据混乱
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失,并解决activity跳转的时候出现短暂的黑屏
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失的动画实现
- Android Listview滑动时不加载数据,停下来时加载数据,让App更优
- Viewpager+Fragment滑动更改ListView数据和设置title文字的变化
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失,并解决activity跳转的时候出现短暂的黑屏
- Android Listview滑动时不加载数据,停下来时加载数据,让App更优
- 【Android】Glide结合Recyclerview(也适用于Listview)实现列表滑动的时候图片不加载,滑动停止的时候加载(已修正Listview部分以及排版)
- Android实现QQ空间沉浸式状态栏,并且滑动ListView实现透明度变化
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失的动画实现【转】
- 当ListView的item为CheckBox,EditText,Spinner的时候处理滑动数据错乱