2013-01-01 7 views
7

Ho una classe genitore che utilizza SlidingMenu. E il bambino che estende la classe genitore mostra il menu scorrevole sul clic sull'icona Home.Disattiva SlidingMenu nell'attività

Come disabilitare il menu scorrevole nelle classi figlio?

codici Parent Classe:

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); 
    } 

} 

codici per la classe bambino:

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); 
     } 


    };  

} 
+1

postale di qualche codice –

+1

Era questo mai risolto? – Signcodeindie

risposta

0

provare imperativi onBackPressed() nella vostra attività bambino.

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

Non riesco a pensare a un modo per "disattivare", ma è possibile rimuovere tutte le funzionalità chiamando nella classe figlia

getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); 

Questo disabiliterà qualsiasi rilevamento gesto per il vostro menu scorrevole. Se si dispone di una barra delle operazioni, fare la solita in onCreate:

actionBar.setDisplayHomeAsUpEnabled(true); 

e gestirlo come se non si dispone di uno SlidingMenu:

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

che ha fatto il trucco! Per riattivare utilizzo SlidingMenu.TOUCHMODE_MARGIN – speedynomads