首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重叠滚动视图

重叠滚动视图
EN

Stack Overflow用户
提问于 2012-01-05 04:01:48
回答 2查看 717关注 0票数 1

我有个问题..。我有两个绝对布局的滚动视图。换句话说,它们是全屏的,并且彼此重叠。

顶部滚动视图是水平滚动视图,底部滚动视图是垂直滚动滚动视图。

当我水平滚动时,我希望顶部的滚动,当我垂直滚动时,我希望底部的滚动。

但我的问题是,水平滚动视图接受所有的滚动事件,所以底部的滚动视图永远不会收到滚动事件……

我该如何解决这个问题?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2013-04-10 20:47:28

嵌套它们怎么样?你可以通过填充和页边距使它在视觉上看起来是一样的,而且你还可以控制哪个视图处理这些触摸。

我不确定您是否可以说一个滚动视图应该只处理水平视图,而另一个滚动视图应该只处理垂直视图-可能不是。但是您可以在两者中覆盖onTouchEvent和onInterceptTouchEvent来定义您需要的任何行为!(查看http://developer.android.com/reference/android/view/GestureDetector.html )

例如,如果希望父滚动视图仅处理垂直滚动,而希望子滚动视图处理水平滚动,则应

代码语言:javascript
复制
-override onInterceptTouchEvent(Event e) {
      if (e.getAction() == ACTION_DOWN){
        //dispatch the call manually to the scroll view below you 
        mChild.onTouchEvent(e);
        super.onTouchEvent(e);
      }
      if (e.getAction() == ACTION_MOVE && the move is horizontal){
         mChild.onTouchEvent(e);
      } else {
         super.onTouchEvent(e); 
     }
      return true;
}

}

或者类似的东西。这并不是你应该做的事情,但你已经明白了。

票数 1
EN

Stack Overflow用户

发布于 2012-01-05 04:10:47

为此,您可能需要实现一个自定义控件。您需要为您的自定义控件创建一个Scroller类。您还可以下载source code for ScrollView class并将其修改为双向的。

不要把可滚动的东西放到其他可滚动的东西中--它们往往会因为触摸事件而发生争执。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8733210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档