我们在 Activity 中有一个主要的水平滚动 View ,并在其中嵌套了几个垂直滚动 View 。想法是水平滚动直到找到所需的垂直列表,然后上下滚动。
理想情况下,当您开始垂直滚动时,我希望垂直滚动具有“锁定”。现在发生的事情是,如果您非常小心,则可以垂直滚动,但是如果在执行此操作时将手指向左/向右移动太多,则垂直停止,而水平接管。
可能有意义的是,无论滚动 View 首先通过您的移动“激活”,在您完成交互操作(即移开手指)之前,该滚动 View 都将保持 Activity 状态。
有什么办法可以使其表现得像这样吗?
最佳答案
如果适用于您的应用,最好使用ViewPager进行水平滑动。
如果那行不通,请尝试覆盖垂直ScrollView的onTouch方法,以防止水平滚动 View 使用滚动。
scrollView.setEnabled(false)
将ScrollView嵌套在其他ScrollView内通常是一个不好的做法,因为它通常使用户难以导航,因此您可能需要考虑重新设计该Activity以避免此问题。
如果您必须使用嵌套的ScrollViews,我发现了这个two-dimensional ScrollView类可能会对您有所帮助。
关于android - Android上的嵌套滚动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7080498/