我正在使用jeremy feinstein的Android应用程序的SlidingMenu。打开左侧菜单后,从后面的视图中我仍然有一个剩余空间未被发现。在剩下的视图中,我有一个要处理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);,它可能会起作用。

关于java - 如何使Jeremy Feinstein的SlidingMenu的后 View 可点击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29148143/

10-08 23:44