- 解决Item点击无效(因Item里有Checkbox等抢焦点的控件)
a。将抢焦点的控件设置为无焦点android:focusable="false"
b。再最外围多布局设置
android:descendantFocusability="blocksDescendants"
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
- ListView复用导致内容错乱
将选中的控件位置添加到List里,再遍历设置控件。private List<Integer> mPos = new ArrayList<Integer>(); final CheckBox cb = holder.getView(R.id.checkBox); cb.setChecked(false); if(mPos.contains((Integer)holder.getPosition())){ cb.setChecked(true); } cb.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(cb.isChecked()){ mPos.add(holder.getPosition()); }else { mPos.remove((Integer)holder.getPosition()); } } });
时间: 2024-10-19 17:19:05