android ListView的item与其子控件的焦点问题

来源:互联网 发布:淘宝测男女的试纸准吗 编辑:程序博客网 时间:2024/06/04 05:41
ListView默认情况

当item有焦点时,item上的button等子控件获取不到焦点;

当子控件有焦点时,item无焦点无法响应onItemClick事件


ViewGroup.FOCUS_AFTER_DESCENDANTS:表示item的子控件优先于item获得焦点;

ViewGroup.FOCUS_BEFORE_DESCENDANTS:表示item优先于其子控件获得焦点。


解决办法:

listView.setOnItemSelectedListener(onItemSelectedListener);  private AdapterView.OnItemSelectedListener  onItemSelectedListener =       new AdapterView.OnItemSelectedListener(){      @Override      public void onItemSelected(AdapterView<?> parent, View view,              int position, long id) {          //当此选中的item的子控件需要获得焦点时           parent.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);          //else parent.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);       }            @Override      public void onNothingSelected(AdapterView<?> parent) {          parent.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);      }  }  


 

原创粉丝点击