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);即可使用自定义的布局