【问题标题】:Sliding Menu and Horizontal ScrollView in AndroidAndroid中的滑动菜单和水平滚动视图
【发布时间】:2013-10-08 11:18:55
【问题描述】:

在我的应用程序中,我使用了 jfeinstein10 的 Sliding Menu 并且工作正常。现在,根据要求,我必须在一个也可以打开这个滑动菜单的页面上有一个 Horizo​​ntal ScrollView。

由于此滑动菜单是通过在屏幕的任何部分从左向右滑动打开的,因此水平 ScrollView 无法正常工作,因为滑动菜单在 ScrollView 之前消耗从左向右滑动并占据屏幕.

其他人遇到过同样的问题吗?

【问题讨论】:

  • 到目前为止有什么解决方案吗,MiaN KhaLiD?
  • 实际上我在滚动视图中的项目减少了。所以,没有它我会过得更好。截至目前,@basilisk 在他的答案 cmets 中提到的方法听起来似乎是合理的,即:“一种可能的解决方案可能是扩展 CustomViewBehind 类,并覆盖 onInterceptTouchEvent。如果事件坐标在您的水平滚动视图上,则返回 false,否则叫超级。”当我有空闲时间时我会尝试一下,并会相应地更新线程:)

标签: android swipe horizontalscrollview slidingmenu


【解决方案1】:

您可以将触摸模式设置为边距,这样如果您从边距滑动,菜单就会可见。 使用slidingmenu.setTouchModeAbove(SlidingMenu.TOUCHMOD_MARGIN);

或在 XML 中使用 sliding:touchModeAbove="margin" 希望它有效。

【讨论】:

  • 让我试试这个,但我更多的是寻找一种解决方案,首先将触摸传递到 ScrollView,然后再传递到 SlidingMenu(我知道我含糊其辞),但我认为这是关键我的问题。到目前为止,我还没有找到这把钥匙:)
  • 现在我已经求助于您的解决方案 Bill,但正如我所说,我正在寻找触摸处理或运动事件特定的解决方案,所以如果有人没有给出我正在寻找的解决方案,我会接受您的回答.现在,我已将您的答案标记为有用。再次感谢:)
  • 遇到同样的问题,有人知道吗?
  • @AJit,basilisk 在他的回答 cmets 中提到的方法听起来似乎是合理的,即:“一种可能的解决方案可能是扩展 CustomViewBehind 类,并覆盖 onInterceptTouchEvent。如果事件坐标超过您的水平滚动视图,返回 false,否则调用 super。”
  • TOUCHMOD_MARGIN 中有错字,应该是 TOUCHMODE_MARGIN :) 还是谢谢!
【解决方案2】:

可以用谷歌提供的 DrawerLayout 替换滑动菜单库。它只拦截屏幕边缘的触摸,因此您也可以拥有水平滚动视图。

http://developer.android.com/training/implementing-navigation/nav-drawer.html

【讨论】:

  • 实际上我从 NavigationDrawer 开始,但要求是允许用户在屏幕上的任何位置从左到右滑动并相应地打开。这就是本机 NavigationDrawer 所缺乏的。无论如何,谢谢你的帮助:)
  • 一种可能的解决方案可能是扩展 CustomViewBehind 类,并覆盖 onInterceptTouchEvent。如果事件坐标在您的水平滚动视图上,则返回 false,否则调用 super。
  • 好的。我也会对此进行调查并进行相应更新:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多