我在 CoordinatorLayout
中有一个 NestedScrollView
。在 NestedScrollView
中,我有一个包含一些组件的 LinearLayout
,其中一些是按钮。组件没有自定义,我只有标准布局参数。
我面临的问题是,每当我将 NestedScrollView
推到顶部或底部并看到 overscroll edges 时, View 上的所有按钮都不会第一次按下时处理任何触摸。需要第二次触摸,从那时起任何按钮都会第一次响应。就好像焦点丢失了,第一次触摸是让它回到 View ,第二次触摸才是真正处理的。
我试过:
设置
focusable=true
、focusableInTouchMode=true
和descendantFocusability=afterDescendants
。不起作用。重写
NestedScrollView
的onScrollChanged
以检测我们何时到达顶部/底部并手动请求最近 View 的焦点。不起作用,发生奇怪的事情,例如工具栏上的 View 获得焦点...通过
dispatchTouchEvent()
在LinearLayout
上模拟触摸事件。
他们都没有工作。非常感谢您能帮助我看到光明!
编辑:似乎与 this 有关.
最佳答案
显然这是一个错误: https://code.google.com/p/android/issues/detail?id=178041
到今天为止,它还没有在支持库 v23 中修复。
关于android - NestedScrollView 中的项目在滚动到顶部或底部后需要单击两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32337729/