17

Supposons que j'ai plusieurs fragments:fragment placehoder dans la mise en page

public class FirstFragment extends Fragment { ... } 

public class SecondFragment extends Fragment { ... } 

public class ThirdFragment extends Fragment { ... } 

J'ai aussi une activité principale , son contenu est (main.xml):

<LinearLayout ...> 

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

</LinearLayout> 

Ma question est, en ci-dessus fichier de mise en page, comment puis-je définir un espace réservé de fragment sans spécifier quel fragment montrer ici, puis dans mon code Java activité, gonfler un fragment propre à l'espace réservé?

Est-ce possible et comment le faire?

Répondre

31

C'est possible. Dans votre main.xml, définissez un support de place pour le fragment, appelons-le "fragment_placeholder":

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

Dans votre activité, chaque fois que vous voulez charger votre fragment:

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

ft.replace (...) devrait être changé en ft.add (...) dans mon cas. –

+0

oui, et android: layout_width devrait être mis à wrap_content – Markus

+0

Voir ceci pour plus d'informations: http://developer.android.com/training/basics/fragments/fragment-ui.html – Hardy

Questions connexes