在项目的开发过程中,需要Listview的Item中包含按钮的效果。在实际开发过,Item中放置按钮后,ListView 单行选择背景颜色变化的效果没有了。
ListView 和 其它能触发点击事件的widget无法一起正常工作的原因是加入其它widget后,ListView的itemclick事件将无法触发,被其它widget的click事件屏蔽。
设置1 在Item的xml模板中设置 根布局 属性
android:descendantFocusability= "blocksDescendants"
如下:
< RelativeLayout>
android:descendantFocusability= "blocksDescendants"
设置2 在按钮控件<ImageButton>中设置属性
android:focusable = "false"
补充:这种设置后,点击按钮,整条Item都响应点击效果,显示的效果非我们需要的
1 ListView的Item本身可以选择
2 Item中的按钮可以随意点击,不会干扰Item
在ListView中用图片控件,或者文本控件,来代替图片按钮和普通按钮,并在Adapter中设置点击事件就可以
如例:
//根据数据项,设置点击文本框的文字,并设置点击事件 TextView txt_Remember=(TextView)convertView.findViewById(R.id.txt_Remember); txt_Remember.setOnClickListener(new TextView.OnClickListener() { public void onClick(View v){ LibListViewAdapter.this.remove(LibListViewAdapter.this.getItem(1)); } });
效果: