2012-05-10 20 views
7

Próbuję zaimplementować pasek czynności Android w trybie nawigacji po liście, z powodzeniem zmienia fragmenty, gdy element jest wybrany z listy, ale fragmenty zachodzą na siebie i widzę zawartość poprzedniego. nadal na ekranie po wybraniu drugiego. Oto mój kod aktywacji OnCreate i OnNavigationItemSelected:Nawigacja na liście ActionBar Nakładające się fragmenty

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    mFirstFragment = new FirstFragment(); 
    mSecondFragment = new SecondFragment(); 

    SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(
      this, 
      R.array.action_list, 
      android.R.layout.simple_spinner_dropdown_item); 

    mActionBar = getActionBar(); 
    mActionBar.setDisplayShowTitleEnabled(false); 
    mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
    mActionBar.setListNavigationCallbacks(mSpinnerAdapter, this); 

    if(savedInstanceState != null) { 
     mActionBar.setSelectedNavigationItem(
       savedInstanceState.getInt("currFragment")); 
    } 
} 

public boolean onNavigationItemSelected(int position, long itemId) { 
    FragmentTransaction mFragmentTransaction = 
      getFragmentManager().beginTransaction(); 

    switch(position) { 
     case FIRST_FRAGMENT: 
      mFragmentTransaction.replace(
        android.R.id.content, 
        mFirstFragment); 
      break; 
     case SECOND_FRAGMENT: 
      mFragmentTransaction.replace(
        android.R.id.content, 
        mSecondFragment); 
      break; 
    } 
    mFragmentTransaction.commit(); 

    return true; 
} 

Z góry dziękuję!

Odpowiedz

Powiązane problemy