首页 > 其他 > 详细

解决SlidingMenu和SwipeBackLayout右滑事件冲突问题

时间:2014-10-22 20:20:10      阅读:290      评论:0      收藏:0      [点我收藏+]

SwipeBackLayout向右滑动关闭当前Activity,SlidingMenu向右滑动则是打开menu部分。在同一个Activity中,当SlidingMenu处于打开状态时,此时向右滑动,事件会被SwipeBackLayout优先处理,导致屏幕上一大部分是menu,一小部分是Activity内容的时候居然是直接关闭当前Activity,显然,这不是用户所愿意看到的(正确操作场景为:当SlidingMenu处于打开状态,右滑先是相应SlidingMenu,慢慢关闭,然后再右滑时才是响应SwipeBackLayout关闭当前Activity,若SlidingMenu处于关闭状态,则直接响应SwipeBackLayout)。

考虑到SlidingMenu和SwipeBackLayout都各自有着自己的状态,且为了尽量耦合,可以进行如下处理(直接在当前Activity中重写dispatchTouchEvent,依据SlidingMenu状态设置SwipeBackLayout的可用状态):

 1 @Override
 2 public boolean dispatchTouchEvent(MotionEvent ev) {
 3     if (menu.isMenuShowing()) {
 4         if (mSwipeBackLayout.getEnableGesture()) {
 5             mSwipeBackLayout.setEnableGesture(false);
 6         }
 7     } else {
 8         if (!mSwipeBackLayout.getEnableGesture()) {
 9             mSwipeBackLayout.setEnableGesture(true);
10         }
11     }
12     return super.dispatchTouchEvent(ev);
13 }

 

解决SlidingMenu和SwipeBackLayout右滑事件冲突问题

原文:http://www.cnblogs.com/lwbqqyumidi/p/4044106.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!