我怎样才能使杰里米范斯坦的滑动菜单的后视图可点击
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);
,它可能会起作用。
我正在为一个 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);
,它可能会起作用。