在活动中禁用SlidingMenu

我有一个使用SlidingMenu的父类。 延伸父类的孩子显示主页图标点击滑动菜单。

如何禁用子类中的滑动菜单?

代码父类:

public class BCFragmentActivity extends SlidingFragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().setDisplayHomeAsUpEnabled(true); setSlidingActionBarEnabled(true); setBehindContentView(R.layout.slide_menu); getSlidingMenu().setShadowWidthRes(R.dimen.shadow_width); getSlidingMenu().setShadowDrawable(R.drawable.shadow); getSlidingMenu().setBehindOffsetRes(R.dimen.actionbar_home_width); getSlidingMenu().setBehindScrollScale(0.25f); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: toggle(); return true; } return super.onOptionsItemSelected(item); } } 

代码为子类:

  public class SettingsPagerActivity extends BCFragmentActivity { private ActionBar actionBar; private ViewPager settingsPager; private Tab profilesTab; private Tab accountsTab; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings_pager); actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); settingsPager = (ViewPager) findViewById(R.id.settingsPage); settingsPager.setOnPageChangeListener(pageChangeListener); FragmentManager fm = getSupportFragmentManager(); profilesTab = actionBar.newTab() .setText("Profile") .setTabListener(tabListener); accountsTab = actionBar.newTab() .setText("Account") .setTabListener(tabListener); actionBar.addTab(profilesTab); actionBar.addTab(accountsTab); } ActionBar.TabListener tabListener = new ActionBar.TabListener() { @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { settingsPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } }; ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { super.onPageSelected(position); actionBar.setSelectedNavigationItem(position); } }; } 

Solutions Collecting From Web of "在活动中禁用SlidingMenu"

我不能想办法“禁用”它,但是你可以通过调用子类来删除所有的function

 getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); 

这将禁用滑动菜单的任何手势检测。 如果您有一个操作栏,请在onCreate中执行以下操作:

 actionBar.setDisplayHomeAsUpEnabled(true); 

并处理它,就好像你没有SlidingMenu一样:

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; default: return super.onOptionsItemSelected(item); } } 

在您的子活动中重写onBackPressed()。

 @Override public void onBackPressed() { this.finish(); overridePendingTransition(0, 0); }