2016-03-19 15 views
0

Ben android için çok yeni ve android iphone'umu dönüştürmek için deneyin. Parçacıklar arasında gezinmeye çalışıyorum ve A parçasından B'ye gidildikten sonra, geri düğmesiyle B parçasından A'ya geri dönmek istiyorum. Bir araştırma yaptım ama bunu iyi anlayamadım. Kodun altında, parçaların arasında dolaştığım bir gezinti çekmecesi var. Takipçilere tıkladıktan sonra geri bildirim tuşuyla haber akışına geri dönmek istiyorum.popBackStack ve addToBackStack Android içinde

//this is the navigation drawer part  
if (id == R.id.my_archive_drawer) { 

       myArchiveFragment fragment = new myArchiveFragment(); 
       android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
       fragmentTransaction.replace(R.id.fragment_container, fragment); 
       fragmentTransaction.addToBackStack("newsFeedFragment"); 
       fragmentTransaction.commit(); 

      } else if (id == R.id.followers_drawer) { 

       followedFollowersFragment fragment = new followedFollowersFragment(); 
       android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
       fragmentTransaction.replace(R.id.fragment_container, fragment); 
       fragmentTransaction.addToBackStack("newsFeedFragment"); 
       fragmentTransaction.commit(); 

      } 
//this is the navigation drawer part 



//this is the on create part part 
     newsFeedFragment fragment = new newsFeedFragment(); 
     android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
     fragmentTransaction.replace(R.id.fragment_container, fragment); 
     fragmentTransaction.commit(); 
//this is the on create part part 


//onbackpreseed part 
    public void onBackPressed() { 
     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     if (drawer.isDrawerOpen(GravityCompat.START)) { 
      drawer.closeDrawer(GravityCompat.START); 
     } else { 
      getFragmentManager().popBackStack("newsFeedFragment"); 
     } 
    } 
//onbackpressed part 

cevap

1

addToBackStack yığındaki fragmanı koymak anlamına gelir. Bu, parça haberleri takipçileri parçalara ayırdığınızda, parçayı yığına eklediğiniz anlamına gelir. Böylece geri döndüğünüzde haber bölümüne dönersiniz. Eğer geri düğmesine zaten takipçileri fragman kaldırıyorsunuz tıklayarak onBackPressed çağırdığınızda, çünkü) (popbackstack kaldırmak için onBackPressed sonra

followedFollowersFragment fragment = new followedFollowersFragment(); 
android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
fragmentTransaction.replace(R.id.fragment_container, fragment); 
fragmentTransaction.addToBackStack(null); 
fragmentTransaction.commit(); 

Ve():

bu kodu deneyin. Yani onBackPressed() böyle olmalı:

@Override 
public void onBackPressed() { 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    if (drawer.isDrawerOpen(GravityCompat.START)) { 
     drawer.closeDrawer(GravityCompat.START); 
    } else { 
     super.onBackPressed(); 
    } 
} 

bu 2 yöntemleri hakkında daha fazla bilgi için

+0

here seni çok JpCrow ederiz okuyabilir, işe yaradı :) geri düğmesini devre dışı ne isterseniz "Oluşturma" bölümünde yaratılan news_freed parçasındayken, başlangıç ​​parçası mı? – saner

+0

Bu durumda onBackPressed() öğesini geçersiz kılmalı ve super.onBackPressed() öğesini çağırmamalısınız; sadece bu durumda, bir bayrak veya bir şey eklemelisin – JpCrow

İlgili konular