2017-10-12 11 views
0

Eh bien, dans mon application, j'ai un fragment qui est responsable de l'affichage des appels de nouvelles, et ce fragment est également un élément dans mon tiroir de navigation.Comment changer l'icône NavDrawer dans un fragment spécifique

L'utilisateur peut cliquer sur les appels de nouvelles, puis entrer un nouveau fragment. Ce que je veux, c'est que lorsque l'utilisateur entre dans ce nouveau fragment, qui a les nouvelles, l'icône qui était avant de NavDrawer, tournez une flèche de retour.

C'est le fragment qui contient les appels vers les nouvelles This is the fragment that holds the calls to the news

Ceci est le fragment de nouvelles, qui devrait avoir le retour flèche This is the news fragment, which should have the return arrow

Répondre

0

Vous pouvez le faire de cette façon

en mode override de fragment surCréer une méthode comme ceci

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setHasOptionsMenu(true); // note this line 
    } 

puis remplacez la méthode onActivityCreated comme celui-ci

@Override 
    public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     ((MainActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); // this is your back arrow 

    } 

et enfin pour un clic d'une dérogation retour flèche méthode onOptionsItemSelected

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     int id = item.getItemId(); 

     switch (id) { 
      case android.R.id.home: 

       if (getActivity() != null) 
        getActivity().onBackPressed(); 

       break; 
     } 
     return super.onOptionsItemSelected(item); 

    } 

Terminé! J'espère que c'est ce que vous vouliez ..

+0

Cela n'a pas fonctionné pour moi, la flèche de retour n'apparaît pas –