17

मान लीजिए मैं कई टुकड़े है:टुकड़ा placehoder

public class FirstFragment extends Fragment { ... } 

public class SecondFragment extends Fragment { ... } 

public class ThirdFragment extends Fragment { ... } 

मैं भी एक मुख्य गतिविधि है, उसकी सामग्री (main.xml) है:

<LinearLayout ...> 

    <!-- How to have a fragment placehold without specify which fragment show here? --> 
    <fragment> 

</LinearLayout> 

मेरे सवाल है, में लेआउट फ़ाइल के ऊपर, मैं खंड प्लेसहोल्डर को निर्दिष्ट किए बिना निर्दिष्ट खंड कैसे दिखा सकता हूं, और फिर मेरी गतिविधि जावा कोड, प्लेसहोल्डर को उचित टुकड़ा बढ़ाएं?

क्या यह संभव है और इसे कैसे करें?

उत्तर

31

यह संभव है।

<LinearLayout ...> 
<FrameLayout android:id="@+id/fragment_placeholder" android:layout_weight="1" 
     android:layout_width="0px" 
     android:layout_height="match_parent" /> 
</LinearLayout> 

अपनी गतिविधि में, जब भी आप अपने टुकड़ा लोड करना चाहते हैं: अपने main.xml में, टुकड़ा के लिए एक जगह धारक को परिभाषित है, चलो यह "fragment_placeholder" कॉल

YourFragment fragment = new YourFragment(); 
FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.replace(R.id.fragment_placeholder, fragment); 
ft.commit(); 
+1

ft.replace (...) मेरे मामले में ft.add (...) में बदला जाना चाहिए। –

+0

हाँ, और एंड्रॉइड: layout_width को wrap_content – Markus

+0

पर सेट किया जाना चाहिए अधिक जानकारी के लिए इसे देखें: http://developer.android.com/training/basics/fragments/fragment-ui.html – Hardy

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