5

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

लेकिन जैसे ही मैं टैब को एक बार स्विच करता हूं, टुकड़े गायब हो जाते हैं (मैं टैबहोस्ट का पृष्ठभूमि रंग देख सकता हूं, लेकिन टैबकंटेंट-कंटेनर की कोई सामग्री नहीं)। जब मैं इसे वापस स्विच करता हूं तो पहला खंड भी चला जाता है। टुकड़े वास्तव में मेरे लॉगिंग शो के रूप में बनाए जा रहे हैं, लेकिन वे दिखाई नहीं दे रहे हैं।

मुझे लगता है कि इसे टुकड़े बनाने के साथ (पुनः) करना है, क्योंकि मैंने FragmentPagerAdapter के साथ ViewPager का उपयोग करने का भी प्रयास किया है। वहां मैं पहले दो टुकड़ों के बीच खुशी से स्विच कर सकता था (setOffscreenPageLimit() == 1 के कारण प्रीलोड किया गया था, लेकिन इससे परे बनाए गए टुकड़े (पुनः) भी रिक्त थे।

कोई भी विचार किसी को भी ??

यहाँ है मेरी कोड के कुछ:

parentFragment के XML के निकालें:

... 
      <android.support.v4.app.FragmentTabHost 
       android:id="@android:id/tabhost" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" > 

       <RelativeLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" > 

        <TabWidget 
         android:id="@android:id/tabs" 
         android:layout_width="match_parent" 
         android:layout_height="40dp" 
         android:layout_alignParentTop="true" /> 

        <FrameLayout 
         android:id="@android:id/tabcontent" 
         android:layout_width="0dp" 
         android:layout_height="0dp" /> 

        <FrameLayout 
         android:id="@+id/realtabcontent" 
         android:layout_below="@android:id/tabs" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" /> 
       </RelativeLayout> 
      </android.support.v4.app.FragmentTabHost> 
... 

parentFragment के XML के निकालें:

... 
@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     Log.d(TAG, "onCreateView"); 
     ViewGroup layoutContainer = (ViewGroup) inflater.inflate(R.layout.fragment_app_details_test, container, false); 

      tabHost = (FragmentTabHost) layoutContainer.findViewById(android.R.id.tabhost); 
     tabHost.setup(getActivity(), getChildFragmentManager(), R.id.realtabcontent); 
     tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("TAB1"), 
       FragmentSubTab1.class, null); 
     tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("TAB2"), 
       FragmentSubTab2.class, null); 
     tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("TAB3"), 
       FragmentSubTab3.class, null); 

     return layoutContainer; 
    } 
... 

उप टैब के दशक में सरल लेआउट मुद्रास्फीति खंड:

... 
@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     ViewGroup layoutContainer = (ViewGroup) inflater.inflate(R.layout.subfragment1, container, 
       false); 

     initUi(layoutContainer); 
     return layoutContainer; 
    } 
... 
+0

तो फोकस बदलते समय टुकड़े छुपाए जाते हैं? – jsmith

+0

यह पता चला है कि आसपास के कस्टम व्यू ग्रुप इस समस्या का कारण बन रहा था जिस तरह से इसे चालू और चालू किया गया था। – Till

+1

@ क्या आप इसे हल करने के लिए प्रबंधित नहीं किया था? अब एक ही मुद्दा प्राप्त करना http://stackoverflow.com/questions/17009462/fragmenttabhost-on-tab-change-the-fragments-get-destroyed-and-disappear –

उत्तर

1

मैंने पहले FragmentTabHost के साथ पेश नहीं किया है, लेकिन मैं (यहाँ डॉक्टर: http://developer.android.com/guide/topics/ui/actionbar.html#Tabs) का सुझाव चाहते हैं तो आप अपने ऐप में टैब नेविगेशन प्राप्त करने के लिए कार्यवाही बार विधि setNavigationMode (ActionBar.NAVIGATION_MODE_TABS) का उपयोग इस प्रस्तावित विधि कम काम लगता है और कम टुकड़े धारकों का उपयोग करता है। आप मूल रूप से अपने टैब का उदाहरण देते हैं, उन्हें बैकस्टैक में जोड़ते हैं और चयनित टैब के अनुसार उन्हें टैब्स चयन या ऑनबैबलेक्टेड तरीकों के माध्यम से दिखाएं/छुपाएं।

उम्मीद है कि यह मदद करता है।

+0

मैं सहमत होगा। लेकिन असुविधाजनक रूप से मुझे अनुरोधित डिज़ाइन/लेआउट के कारण TabHost का उपयोग करना होगा ... – Till