2017-05-08 2 views
0

Est-il possible de définir le nom de ajouté en format XML de la classe d'activité, je dois faire la transition entre les fragments qui sont inclus sur l'activité mais seulement sur et remplacer le nom du fragment par un nouveau .mettre android: nom de <fragment> par programmation

<fragment 
     android:name="com.example.harry.comparateur_de_prix.Accueil.AccueilFragment" //To change 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/fragment1"> 

    </fragment> 

Répondre

0

Vous souhaitez utiliser un FrameLayout à la place ici.

Puis use FragmentTransaction à remplacer que ViewGroup par son attribut ID

0

Tout d'abord, vous devrez changer votre mise en page XML de l'activité pour inclure un FrameLayout comme celui-ci:

<!--Other XML layout elements, view-groups, views etc...; other stuff--> 

    <FrameLayout 
     android:id="@+id/id_1" 
     android:layout_width="@dimen/fl_width" 
     android:layout_height="@dimen/fl_height"> 
    </FrameLayout> 

Ce que nous voulons faire maintenant; pour être en mesure de remplacer ce FrameLayout dans la mise en page XML de l'activité ci-dessus que nous venons d'ajouter avec la mise en page d'un fichier de mise en page de votre fragment.

maintenant dans votre fichier d'activité,

  1. instancier un objet FragmentManger
  2. obtenir une instance de fragmentTransaction via la méthode fragmentManagers beginTransaction(). cela remplacera

/*1)*/ FragmentManager fragmentManager = getSupportFragmentManager(); 
    /*2)*/ FragmentTransaction ft = fragmentManager.beginTransaction(); 

Ensuite, faire ces changements

ft.replace(R.id.id_1, new YourFragment()); 
ft.commit(); 

L'argument YourFragment() vous demander d'insérer une instance d'un de vos fragments , la La mise en page actuelle de FrameLayout avec celle de YourFragments(). Nous validons enfin le fragmentTransaction.


Si vous voulez remplacer le fragment que les écrans FrameLayout, simples commencent une nouvelle transaction de fragment et remplacer la mise en page de cadre avec un nouveau fragment comme indiqué ci-dessus.