当我们在listview的item中添加了类似于微信的块条之后,想listview的item本身不能被点击(即点击不产生点击效果),只有当点击item中的条块的时候才会触发事件,那么,这时候就要在listvidw中添加一个属性,即android:listSelector="@drawable/listselector"。其中的listselector是自己定义的一个选择器,里面不需要写什么内容,目的只是把系统自带的选择器覆盖掉。但是仅仅设置这一属性是不够的,listview虽然点击了不会产生点击的效果,但是仍然会将点击事件传递给放在listview中的块条,这时候,我们还需要在代码中,将item本身的点击事件消化掉。代码如下。
listview.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
我们还可以设置listview的分割线是否可见,以及自定义分割线。自定义分割线用属性android:divider="@drawable/divide",而设置分割线不可见,则在java代码中设置listview.setDivider(null);
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="#00000000"
android:divider="@drawable/divide"
android:listSelector="@drawable/listselector" >
</ListView>