android之ListView多次调用getView解决办法

前言

最近遇到一个bug,写了一个简单的listview,不过listview的条目内含的控件较多(且控件的状态即显隐状态也比较复杂),结果就导致了,一个bug,例如我的item只有3个,但是getView居然被调用了几十次。实在是惊人的很。这也间接导致条目的显示/隐藏状态出现了混乱。

解决办法

问题的发现过程

由于上述listv条目中控件的显隐状态出现混乱,当时很纳闷,但是debug后发现getView的调用次数不合乎常理。虽然不知道显隐状态出现错乱于getView被多次调用是否有关系,但是依然百度了一下:“adapter多次调用getView”,之后发现遇到这个问题的不在少数。(notify正常,初始化出现错乱)

产生多次调用的根源

之所以多次调用getView原因就是自己在写布局时listview(使用了listview)的大小不固定,而添加adapter后,listview的条目尺寸不确定,这就导致了listview需要不断的测量。

解决方法

解决方法,就是listview的大小要确定,例如使用match_parent。
方法一:
在listview外面套一层RelativeLayout,将listview高度设置为match_parent。

方法二:
在listview外面套一层 LinearLayout,将listview高度设置为0dip。weight设为1。

一些文章分

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值