如何使SlidingMenu只滑动内容而不是ActionBar

时间:2013-09-14 05:00:26

标签: java android slidingmenu

我在我的应用中使用SlidingMenu和ActionBarSherlock,我实现它的方式是制作BaseActivity扩展SlidingFragmentActivity(类似于menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);中显示的方式3}})。我的应用中的所有其他活动都扩展了此BaseActivity。

但是目前,当我从应用程序的左侧滑动时,包括ActionBar在内的整个活动都会滑动。我只想要内容滑动。所以看一下文档,我认为添加它应该这样做:java.lang.IllegalStateException: This SlidingMenu appears to already be attached

但我收到该行的错误 -

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle(mTitleRes); // set the Behind View setBehindContentView(R.layout.menu_frame); if (savedInstanceState == null) { FragmentTransaction t = this.getSupportFragmentManager().beginTransaction(); mFrag = new MenuListFragment(); t.replace(R.id.menu_frame, mFrag); t.commit(); } else { mFrag = (ListFragment)this.getSupportFragmentManager().findFragmentById(R.id.menu_frame); } // customize the SlidingMenu SlidingMenu sm = getSlidingMenu(); sm.setShadowWidthRes(R.dimen.shadow_width); sm.setShadowDrawable(R.drawable.shadow); sm.setBehindOffsetRes(R.dimen.slidingmenu_offset); sm.setFadeDegree(0.35f); sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); // **** This following line causes the error ***** sm.attachToActivity(this, SlidingMenu.SLIDING_WINDOW); getSupportActionBar().setDisplayHomeAsUpEnabled(true); }

这是BaseActivity的onCreate函数 -

attachToActivity

我应该在其他地方做{{1}}吗?

2 个答案:

答案 0 :(得分:5)

我最终通过从Base活动中删除了它来解决它 - sm.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);

并将其添加到所有继承的活动的onCreate中:

setSlidingActionBarEnabled(false);

我想这是来自一长串的继承(myActivity - > BaseActivity ---> SlidingFragmentActivity - > SherlockFragmentActivity)

答案 1 :(得分:1)

您使用了命令行:

SlidingMenu sm = getSlidingMenu();

并且您没有附上您的菜单,因为您的菜单已经附加。

使用命令:

sm.attachToActivity(this, SlidingMenu.SLIDING_WINDOW); 

如果您创建SlidingMenu的新实例。 就像SlidingMenu menu = new SlidingMenu(this);

一样