ListView问题解决办法总结

1.设置了ListView的背景,但滑动ListView仍会出现黑色的背景,然后再复原为设置的背景
解决办法:设置属性android:cacheColorHint="#00000000" //滑动ListView的颜色为白色透明度为0

2.在一行被选中时,默认会出现黄色背景,想改为自定义图片背景
解决办法:设置属性android:listSelector="@drawable/..."

3.如果对ListView使用自定义Adapter,而每行数据中存在Button,就会出现ListView不响应OnItemClick事件,原因是Button抢了ListView焦点
解决办法:在定义一行的xml文件中,设置Button属性Focusable=false,这种方法偶尔不会奏效,就在代码getView()方法中设置,button.setFocusable(false);

4.在ListView中使用自定义布局,每行数据加入了button或其它可响应事件的控件,可能会出现点击与响应的行不一致的情况,即:点击第一行的button,而响应的却是其它行的.此种情况甚为诡异
解决办法: 要注意Listener的设置位置,继承BaseAdapter重写adapter的基本写法不详细描述
getView(...) {
if (convertView == null) {
convertView.inflate....;
holderview = findViewById...
convertView.setTag(holderView);
} else {
holderView = convertView.getTag();
}
holderView.button.setOnClickListener(...);//在此设置Listener,如果把设置语句放在if语句里面,就可能出现前面描述的怪异现象

5.不重写adapter使用自定义布局
解决办法: 前提是要考虑需求,若界面只是需要显示一个List的列表,则可以使用ListActivity.ListActivity的布局文件里必须有一个ID改为android:id="@android:id/ list的ListView(基本用法)
  继承listActivity,在OnCreate里面setContentView(R.layout.yours);即可使用自定义的布局
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值