2012-06-06 14 views
6

मैं एंड्रॉइड नमूना, FragmentTabs का उपयोग कर रहा हूं।फ्रैगमेंट एक्टिविटी टैब स्क्रीन ब्लैकआउट

कहें, 4 टैब (ए, बी, सी, डी) हैं। मैं एक और (ई) के साथ टैब टुकड़ा (ए) इस कोड को

FragmentTransaction transaction = getFragmentManager() 
       .beginTransaction(); 

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

     // Commit the transaction 
     transaction.commit(); 

अन्य टैब सी में उपयोग करते हुए, जब मैं बटन टैब (ए) स्क्रीन काली बन वापस प्रेस द्वारा की जगह,।

+0

[टुकड़े के साथ Android टैब्स] (http://android.codeandmagic.org/2011/07/android: से यह

इस लिंक पर मेरा उत्तर जाँच यहाँ सब टुकड़ा उपयोगकर्ताओं के लिए आप कुछ बात सहायक होगी -टैब्स-फ्रैगमेंट्स /) और यह डेवलपर साइट [फ्रैगमेंट्स] (http://developer.android.com/guide/topics/fundamentals/fragments.html) को भी देखें, उम्मीद है कि यह मदद करता है। –

उत्तर

0

मैं आमतौर पर टैब प्रबंधित करने के लिए एंड्रॉइड नमूना, FragmentTabs का उपयोग करता हूं, और मुझे इस समस्या का अनुभव नहीं हुआ है। पूर्ण स्रोत कोड को देखे बिना, यह बताना मुश्किल है कि यह वास्तव में क्या हो रहा है। लेकिन, यदि आप FragmentTabs का उपयोग नहीं कर रहे हैं, तो आप इसे माइग्रेट करने का प्रयास कर सकते हैं, क्योंकि इसका पूरी तरह से परीक्षण किया गया है;)

+0

मैं उस एंड्रॉइड नमूना का भी उपयोग कर रहा हूं। लेकिन अभी भी ऊपर वर्णित स्क्रीन ब्लैकआउट प्राप्त कर रहा है। – asish

1

आप सबसे पहले फ्रैगमेंट लेनदेन को वापस ढेर में जोड़ रहे हैं। बैक स्टैक पर लेनदेन जोड़ते समय, इसका मतलब है कि जब उपयोगकर्ता वापस हिट करता है, तो अंतिम लेनदेन उलट दिया जाएगा। तो यदि आपने फ्रैगमेंट ए जोड़ा और फ्रैगमेंट बी को हटा दिया, तो वापस दबाकर फ्रैगमेंट ए को हटा दिया जाएगा और फ्रैगमेंट बी (और कुछ सहेजे गए राज्य को फ्रैगमेंट बी के लिए पुनर्स्थापित करें) को हटा दिया जाएगा।

अपने पहले लेनदेन के लिए, आप केवल गतिविधि में एक टुकड़ा जोड़ रहे हैं, इसलिए रिवर्सिंग फ्रैगमेंट को हटा देगा और इस प्रकार, कुछ भी प्रदर्शित नहीं करेगा। तो बस बैक स्टैक पर पहला लेनदेन न जोड़ें (मान लीजिए कि आपने ऐसा किया है ... मेरे पास जानने का कोई तरीका नहीं है क्योंकि आपने केवल अपने कोड का एक छोटा सा स्निपेट चिपकाया है)।

2

हाय आशीष यह समस्या हो रही है क्योंकि टुकड़ा सामान्य गतिविधि में सामान्य बैक गतिविधि की तरह समझ नहीं सकता है जब आप उस समय वापस कुंजी दबाते हैं, हाल ही में उपयोग की गई गतिविधि स्वचालित रूप से खुल जाएगी लेकिन खंड में यह तब नहीं होगा जब आप बैक बटन दबाएंगे, हम टुकड़ा यहाँ मैं कोड है जहाँ से मैं अपने टुकड़ा गतिविधि से निपटने हूँ साझा कर रहा हूँ में घटना वापस बनाए रखने के लिए ताकि आप जाँच कर सकते हैं इस

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


     } 

देखें कि अन्य बात यह है कि इरादे दिखा रहा है मेरी टुकड़े को बनाए रखने है हो सकता है है

कृपया मेरा उदाहरण देखें (ग्रिडव्यू के साथ टुकड़ा) जो मैंने साझा किया है How to Show Different Layouts inside Fragments

संबंधित मुद्दे