在headerview这一类view中如果有edittext,在点击edittext时可能会出现focus死循环问题,这时需要在listivew上设置item中focus的传递和消费规则,
listView.setDescendantFocusability(FOCUS_AFTER_DESCENDANTS);
这里的setDescendantFocusability的参数有三个,分别是:
- FOCUS_BEFORE_DESCENDANTS ViewGroup本身先对焦点进行处理,如果没有处理则分发给child View进行处理
- FOCUS_AFTER_DESCENDANTS 先分发给Child View进行处理,如果所有的Child View都没有处理,则自己再处理
- FOCUS_BLOCK_DESCENDANTS ViewGroup本身进行处理,不管是否处理成功,都不会分发给ChildView进行处理