2012-06-06 24 views
6

Ben android örnek kullanıyorum, FragmentTabs.FragmentActivity Sekmesi ekranı Blackout

Diyelim ki, 4 sekme vardır (A, B, C, D). I düğmesi sekmesi (A) Ekran siyah geri basın, bu kod bir sekme C

FragmentTransaction transaction = getFragmentManager() 
       .beginTransaction(); 

     transaction.replace(R.id.realtabcontent, newFragment); 
     transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
     transaction.addToBackStack(null); 

     // Commit the transaction 
     transaction.commit(); 

kullanılarak, başka bir (E) sekme fragmanı (A) değiştirin.

+0

[Parçası Düşen Android Sekmeler] (http://android.codeandmagic.org/2011/07/android: bu linke Cevabımı

kontrol buraya tüm fragman kullanıcılar için size yardımcı bazı şey bulacaksınız -tabs-with-fragments /) ve ayrıca bu Geliştirici Sitesi [Fragments] bakın (http://developer.android.com/guide/topics/fundamentals/fragments.html) Umarım Yardım eder. –

cevap

0

Genellikle, sekmeleri yönetmek için android örneğini FragmentTabs kullanırım ve bu sorunu yaşamadım. Tam kaynak kodunu görmeden, tam olarak ne olduğunu söylemek zor. Ancak, FragmentTabs'u kullanmıyorsanız, tam olarak sınanmış olduğundan, buna geçiş yapmaya çalışabilirsiniz;)

+0

Bu android örneğini de kullanıyorum. Ama yine de yukarıda tarif ettiğim gibi ekran karartma oluyor. – asish

1

Büyük ihtimalle ilk Fragment işlemini arka yığına ekliyorsunuzdur. Arka yığına bir işlem eklerken, kullanıcı geri döndüğünde son işlemin tersine çevrileceği anlamına gelir. Parçayı A'yı eklediyseniz ve Fragman B'yi çıkarırsanız, geri tuşuna basmanız Parçacık A'yı kaldırır ve Fragman B'yi ekler (ve Fragman B için kaydedilmiş durumu geri yükler).

İlk işleminiz için, yalnızca Etkinliğe bir Fragman ekliyorsunuz, bu nedenle Parçayı kaldıracak ve dolayısıyla hiçbir şey göstermeyecek şekilde tersine çeviriyorsunuz. Bu yüzden, ilk işlemi arka yığına eklemeyin (Bunu yaptığınızı varsayarsak ... Bilmem mümkün değil, çünkü sadece kodunuzun küçük bir parçacığını yapıştırdınız).

2

Merhaba, bu sorun gerçekleşiyor çünkü bölüm, normal etkinliğinizdeki normal aktivite gibi normal aktiviteyi anlayamazsınız. Bu durumda, son kullanılan etkinlik otomatik olarak açılacak, ancak parçada geri düğmesine bastığınızda bu işlem gerçekleşmeyecektir. bu yüzden bu

public void onListItemClick(ListView l, View v, int position, long id) { 
     showDetail(position); 

    } 

    void showDetail(int position) { 
     this.position=position; 
     if(isDualPane){ 
      getListView().setItemChecked(position, true); 
      DetailFragment detailFragment = (DetailFragment) 
        getFragmentManager().findFragmentById(R.id.detail); 

      if (detailFragment == null || detailFragment.getIndex() != position) { 
       detailFragment = new DetailFragment(position); 
       FragmentTransaction ft =getFragmentManager().beginTransaction(); 
       ft.replace(R.id.detail, detailFragment); 
       ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
       ft.commit(); 
      } 

     } 
     else { 
      Intent intent =new Intent(); 
      intent.setClass(getActivity(),DetailActivity.class); 
      intent.putExtra("position", position); 
      startActivity(intent); 


     } 

başka parçası benim parçalarını sürdürüldüğünü niyetini gösteriyor bkz kontrol edebilirsiniz olabilir biz burada ben hangi benim fragmanı etkinliğini ele am kodu paylaşıyorum fragmanında olayı geri korumak zorunda

Lütfen paylaştığım örneğimi (Gridview ile Fragman) kontrol et How to Show Different Layouts inside Fragments