您的位置:首页 > 移动开发 > Android开发

android中的listView使用小结

2013-01-25 14:40 375 查看
一、如果将listView的背景设为透明,这时滚动listView,就会发现黑色的背景,很不和谐,禁掉的方法:在xml定义listView控件的属性加android:cacheColorHint="#00000000"  或者 在代码里 listView.setCacheColorHint(Color.TRANSPARENT); 
二、同样当背景为透明时,会出现一条一条的间隔小黑线,不太美观,同样也可以去掉,或者用其他的图图来代替,方法如下:在xml定义的listView属性

android:divider为该属性加上相应的值就行了,在代码中listView.setDivider(null);这里的值可以有很选择,可以根据自己的具体需要来定义

三、listView的item按下时背景的改变,方法如下:android:listSelector="@drawable/listitem_selector" 或者 titleListView.setSelector(R.drawable.listitem_selector);

listitem_selector.xml大致可以参考如下:

 

<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- <item android:state_enabled="false" android:drawable="@drawable/bg_l" />
<item android:state_enabled="true" android:state_pressed="false" android:drawable="@drawable/bg_l" />

<item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/bg_l" />
-->
</selector>

 

四、listView中的item选中效果,其实上面的方法也可以得到类似的效果,这里记下另外的方法:

这里用到了适配器adapter,在自己扩展的adapter类中,getView()这个方法里进行处理:可参考如下代码

 

public class MyAdapter extends BaseAdapter
{
public void setSelectItem(int selectItem) {
this.selectItem = selectItem;
}
//现已选择的item
private int selectItem=-1;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//选中后标识
if(selectItem == position)
{
//选中的状态,对view进行处理
}else{
//未选中的状态,对view进行处理
}

return view;
}
}

然后,在listView的OnItemClickListener中的onItemClick()方法中,加入如下代码:

MyAdapter.setSelectItem(arg2);

       mChannelAdapter.notifyDataSetInvalidated();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: