在 ViewPager 中使用 ScrollView 和 Widgets 进行嵌套滚动

Nested Scrolling with ScrollView and Widgets in ViewPager

我正在尝试为 Android 编写自定义启动器。我想避免使用小部件页面。相反,ScrollView 应该可以解决问题。 (见图)

当屏幕上有一个可滚动的小部件时,我的问题就出现了。它不是滚动小部件的内容,而是滚动 ScrollView。因此,在这种情况下,NestedScrollView 不起作用。

我很好奇这个问题的解决方案。我可以在需要时提供代码。

我还尝试了在小部件接收到 onTouch 事件时请求禁止拦截滚动视图的触摸事件。然而,onTouch-Event 并没有一直触发,我触摸了一个小部件。

编辑:我再次检查,确实似乎 onClick 和 onTouch 事件只是在某些小部件中触发。例如,Google News Widget 在我的 ScrollView 中既不识别 onClick 也不识别 onTouch。但是,当它没有嵌入到 ScrollView 中时,它可以工作。

我终于明白了。我必须做的是创建一个 AppWidgetHostView 的子类(就像在股票 Android 启动器中一样)并覆盖 onInterceptTouchEvent-Method。我在那里 return true 或 false 并在需要时调用 getParent().requestDisallowInterceptTouchEvent()-方法。