android – 在活动中禁用SlidingMenu

前端之家收集整理的这篇文章主要介绍了android – 在活动中禁用SlidingMenu前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用SlidingMenu的父类.扩展父类的子项显示主页图标上的滑动菜单.

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

代码父类

  1. public class BCFragmentActivity extends SlidingFragmentActivity {
  2.  
  3. @Override
  4. public void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  7. setSlidingActionBarEnabled(true);
  8.  
  9. setBehindContentView(R.layout.slide_menu);
  10.  
  11. getSlidingMenu().setShadowWidthRes(R.dimen.shadow_width);
  12. getSlidingMenu().setShadowDrawable(R.drawable.shadow);
  13. getSlidingMenu().setBehindOffsetRes(R.dimen.actionbar_home_width);
  14. getSlidingMenu().setBehindScrollScale(0.25f);
  15. }
  16.  
  17. @Override
  18. public boolean onOptionsItemSelected(MenuItem item) {
  19. switch (item.getItemId()) {
  20. case android.R.id.home:
  21. toggle();
  22. return true;
  23. }
  24. return super.onOptionsItemSelected(item);
  25. }
  26.  
  27. }

儿童代码

  1. public class SettingsPagerActivity extends BCFragmentActivity {
  2.  
  3. private ActionBar actionBar;
  4. private ViewPager settingsPager;
  5. private Tab profilesTab;
  6. private Tab accountsTab;
  7.  
  8. @Override
  9. public void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.activity_settings_pager);
  12.  
  13.  
  14. actionBar = getSupportActionBar();
  15. actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
  16.  
  17. settingsPager = (ViewPager) findViewById(R.id.settingsPage);
  18. settingsPager.setOnPageChangeListener(pageChangeListener);
  19.  
  20. FragmentManager fm = getSupportFragmentManager();
  21.  
  22. profilesTab = actionBar.newTab()
  23. .setText("Profile")
  24. .setTabListener(tabListener);
  25. accountsTab = actionBar.newTab()
  26. .setText("Account")
  27. .setTabListener(tabListener);
  28.  
  29. actionBar.addTab(profilesTab);
  30. actionBar.addTab(accountsTab);
  31.  
  32. }
  33.  
  34. ActionBar.TabListener tabListener = new ActionBar.TabListener() {
  35.  
  36. @Override
  37. public void onTabSelected(Tab tab,FragmentTransaction ft) {
  38. settingsPager.setCurrentItem(tab.getPosition());
  39. }
  40.  
  41. @Override
  42. public void onTabUnselected(Tab tab,FragmentTransaction ft) {
  43. // TODO Auto-generated method stub
  44.  
  45. }
  46.  
  47. @Override
  48. public void onTabReselected(Tab tab,FragmentTransaction ft) {
  49. // TODO Auto-generated method stub
  50.  
  51. }
  52.  
  53. };
  54.  
  55. ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener() {
  56.  
  57. @Override
  58. public void onPageSelected(int position) {
  59. super.onPageSelected(position);
  60. actionBar.setSelectedNavigationItem(position);
  61. }
  62.  
  63.  
  64. };
  65.  
  66. }

解决方法

我想不出一种“禁用”它的方法,但你可以通过调用子类来删除所有功能
  1. getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);

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

  1. actionBar.setDisplayHomeAsUpEnabled(true);

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

  1. @Override
  2. public boolean onOptionsItemSelected(MenuItem item) {
  3. switch (item.getItemId()) {
  4. case android.R.id.home:
  5. finish();
  6. return true;
  7. default:
  8. return super.onOptionsItemSelected(item);
  9. }
  10. }

猜你在找的Android相关文章