我正在将 jeremy feinstein 的 SlidingMenu 用于 Android 应用程序。当左侧菜单打开时,我仍然有从后面的 View 中发现的剩余空间。在剩下的 View 中,我有一个要处理 onClick 的按钮。但是当我单击它或 View 的任何其他部分时,它只会关闭左侧菜单。
我怎样才能做到这一点?我尝试设置 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);
,它可能会起作用。
我是一名优秀的程序员,十分优秀!