我怎样才能使杰里米范斯坦的滑动菜单的后视图可点击

How can I make the behind view of jeremy feinstein's SlidingMenu clickable

我正在为一个 Android 应用程序使用 jeremy feinstein 的 SlidingMenu。当打开左侧菜单时,我仍然有一个 space 从后面的视图未被覆盖。在剩下的视图中,我有一个要处理 onClick 的按钮。但是当我点击它或视图的任何其他部分时,它只会关闭左侧菜单。

我怎样才能完成这项工作?我试图设置 sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN|SlidingMenu.TOUCHMODE_FULLSCREEN); 但它没有这样工作。这是我的 SlidingMenu 对象的代码:

    SlidingMenu sm = getSlidingMenu();
    sm.setShadowWidthRes(R.dimen.shadow_width);
    sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    sm.setFadeDegree(0.0f);
    sm.setMode(SlidingMenu.LEFT_RIGHT);
    sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN|SlidingMenu.TOUCHMODE_FULLSCREEN);

    // set the left menu
    sm.setMenu(R.layout.menu_frame_left);
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.menu_frame_left, new LeftMenuListFragment())
            .commit();

    // set the right menu
    sm.setSecondaryMenu(R.layout.menu_frame_right);
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.menu_frame_right, new RightMenuListFragment())
            .commit();

我还会附上一张我画的图来更好地解释我想要实现的目标:

根据 jeremy feinstein 的 SlidingMenu 的代码,我找到了与 setTouchModeAbove() 一起使用的常数值的数值:

/** Constant value for use with setTouchModeAbove(). Allows the SlidingMenu to be opened with a swipe
 * gesture on the screen's margin
 */
public static final int TOUCHMODE_MARGIN = 0;

/** Constant value for use with setTouchModeAbove(). Allows the SlidingMenu to be opened with a swipe
 * gesture anywhere on the screen
 */
public static final int TOUCHMODE_FULLSCREEN = 1;

当你设置 sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN|SlidingMenu.TOUCHMODE_FULLSCREEN); 时,实际上 touchModeAbobe 的值是 1|0 等于 1 。

我建议你尝试 sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);,它可能会起作用。