listview的headerview中有edittext这类需要focus的控件时的处理

来源:互联网 发布:java画图 编辑:程序博客网 时间:2024/06/18 16:02

在headerview这一类view中如果有edittext,在点击edittext时可能会出现focus死循环问题,这时需要在listivew上设置item中focus的传递和消费规则,

listView.setDescendantFocusability(FOCUS_AFTER_DESCENDANTS);

这里的setDescendantFocusability的参数有三个,分别是:

  1. FOCUS_BEFORE_DESCENDANTS ViewGroup本身先对焦点进行处理,如果没有处理则分发给child View进行处理
  2. FOCUS_AFTER_DESCENDANTS 先分发给Child View进行处理,如果所有的Child View都没有处理,则自己再处理
  3. FOCUS_BLOCK_DESCENDANTS ViewGroup本身进行处理,不管是否处理成功,都不会分发给ChildView进行处理

0 0