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


    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 }
  • 相关阅读:
    Fruit Ninja(随机数rand())
    C. A Mist of Florescence ----- Codeforces Round #487 (Div. 2)
    给力的移动 FZU
    FZU 2254 英语考试 (最小生成树)
    6486: An Ordinary Game(规律)
    HDU 1114: Piggy-Bank
    HDU 5916: Harmonic Value Description
    1072 威佐夫游戏
    1069 Nim游戏
    1066 Bash游戏
  • 原文地址:https://www.cnblogs.com/lwbqqyumidi/p/4044106.html
Copyright © 2020-2023  润新知