私はアプリで ActionBarSherlock を使用してSlidingMenuを使用していますが、それを実装する方法は、BaseActivity
which extendsを作成することです (例SlidingFragmentActivity
で示した方法と同様)。私のアプリの他のすべてのアクティビティは、この BaseActivity を拡張します。
しかし、現在、アプリで左からスライドすると、ActionBar を含むアクティビティ全体がスライドします。コンテンツをスライドさせたいだけです。ドキュメントを見て、これを追加するとうまくいくはずだと思いました:menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
しかし、その行でエラーが発生します-
java.lang.IllegalStateException: This SlidingMenu appears to already be attached
これが BaseActivity の onCreate 関数です -
@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);
}
他の場所でやるべきattachToActivity
ですか?