listView的item中点击显示隐藏部分时,listView的高度无变化,且最后的item被挤出屏幕
2017-05-01 23:10
281 查看
为了实现点击listView中item中的某个TextView,展示此item中隐藏的布局,再次点击隐藏此布局的这个功能,刚开始我在adapter的getView() 方法中加了给这个textView中加了一个点击事件。
但是这样就会出现点击显示隐藏部分的时候,listView最下面的item被挤出屏幕,且listView无法滑动。
于是就有了第二种方法。众所周知ListView有个notifyDataSetChanged()方法。这个方法是数据改变时调用则会刷新整个ListView。我在item布局所对应的实体类中添加了一个boolean类型的变量用于判断是否显示还是隐藏。
比如实体类如下:
然后在listViwe的adapter的getView()方法中做如下处理
参考链接 http://www.jianshu.com/p/6ea1cda7e670
textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (hideView.getVisibility() == View.VISIBLE) { hideView.setVisibility(View.GONE); } else { hideView.setVisibility(View.VISIBLE); } })
但是这样就会出现点击显示隐藏部分的时候,listView最下面的item被挤出屏幕,且listView无法滑动。
解决方法
刚开始,我想到的第一个解决办法是重绘ListView的高度,这种方法网上有很多,所以就不介绍了。这个方法虽然可行,但我感觉却有些杀鸡用牛刀了。于是就有了第二种方法。众所周知ListView有个notifyDataSetChanged()方法。这个方法是数据改变时调用则会刷新整个ListView。我在item布局所对应的实体类中添加了一个boolean类型的变量用于判断是否显示还是隐藏。
比如实体类如下:
public class VipCoupon { public String id; public String name; public String deadline; /** * 是否显示隐藏的布局,属于ui使用的变量,与业务无关 */ public boolean isShow; }
然后在listViwe的adapter的getView()方法中做如下处理
final VipCoupon voucher = mList.get(position); if(voucher.isShow){//isShow刚开始默认为false holder.mUserDesc.setVisibility(View.VISIBLE); } else { holder.mUserDesc.setVisibility(View.GONE); } //当点击item的textView时 holder.textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { voucher.isShow = !voucher.isShow; //最后记得刷新 notifyDataSetChanged(); } });
参考链接 http://www.jianshu.com/p/6ea1cda7e670
相关文章推荐
- ListView中根据手机屏幕高度动态设置只显示一屏幕的item个数
- android listview实现点击某个item后使其显示在屏幕顶端
- listview的某个item点击显示或隐藏的错乱问题解决方法
- ListView的item点击显示隐藏的菜单
- ListView实现隐藏,显示Item的部分View.以及部分问题
- ListView中根据手机屏幕高度动态设置只显示一屏幕的item个数
- ListView的Item高度不确定,导致最后一条item中ImageView 加载图片时不能完全显示
- ListView的Item中带按钮以及按钮布局的显示与隐藏
- Android中Listview的getChildAt()只能更新当前显示在屏幕上的Item的解决办法
- 点击显示或隐藏某部分内容
- Android中Listview的getChildAt()只能更新当前显示在屏幕上的Item的解决办法
- ListView快速滑动,同时屏幕中间PopupWindows显示滑动到的item内容或首字母
- android中ExpandableListView点击哪一条那一条显示,而其他条隐藏的实现办法
- ListView item中的 RadioButton(自定义RadioButton图标,默认无图,选择有图)点击时不显示图片问题
- android listView点击item,高亮显示
- 点击按钮 显示listview中隐藏的checkbox
- Android ListView点击item 显示隐匿菜单项
- android中ExpandableListView点击哪一条那一条显示,而其他条隐藏的实现办法
- 解决 listview的item超过屏幕显示出现滚动的全选问题
- mp3播放器 遍历本地音乐显示在listview上,点击每一项item并传送音乐地址