15 votes

Comment ajouter le bouton de retour "UP" dans un fragment (Fragment to Activity)

Je veux passer du fragment à l'activité en utilisant le bouton de retour en utilisant l'icône de retour de la barre d'outils.

like this one

Le fragment est mon élément de tiroir de navigation et l'activité est ma MainActivity.

Comment dois-je m'y prendre ?

24voto

Satan Pandeya Points 2372

Vous pouvez utiliser app:navigationIcon="?attr/homeAsUpIndicator" pour l'icône de navigation arrière.

 <android.support.v7.widget.Toolbar
            android:id="@+id/toolbarId"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:navigationIcon="?attr/homeAsUpIndicator"/>

Pour la navigation :

Toolbar toolbar = (ToolBar) getActivity().findViewById(R.id.toolbarId);

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getActivity().onBackPressed();
        }
    });

7voto

sasikumar Points 7070

Appelez cette méthode dans votre fragment onCreateView

public void showBackButton() {
if (getActivity() instanceof ActionBarActivity) {
    ((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}

4voto

Essayez ceci, ça a marché pour moi :

  1. en XML :

    <android.support.v7.widget.Toolbar
     android:id="@+id/profileToolbar"
     android:layout_width="match_parent"
     android:layout_height="wrap_content">
  2. Créer une icône de flèche vers l'arrière dans le dossier "drawable". Nommez-la 'ic_back_button'. Je ne sais pas comment faire.
    il suffit de faire un clic droit sur le dessinable > nouveau > ImageAsset > Clip Art > Search back > sélectionner > OK > Finish (n'oubliez pas de changer le nom).

  3. puis à l'intérieur de votre fragment dans onCreateView :

        Toolbar toolbar = view.findViewById(R.id.profileToolbar);
        toolbar.setNavigationIcon(R.drawable.ic_back_button);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          getActivity().onBackPressed();
        }
        });

0voto

Sunil P Points 1432

Ajouter ce code xml à votre fragment et essayer

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="#FFFFFF"
        android:layout_gravity="center"
        android:gravity="center_horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Title Here"
            android:typeface="serif"
            android:layout_gravity="center"
            android:id="@+id/toolbar_title"
            android:textSize="20sp"
            android:textColor="@android:color/black"/>

        <ImageView
            android:id="@+id/ivback_water"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:padding="15dp"
            android:scaleType="fitCenter"
            android:layout_gravity="left"
            android:background="@drawable/ic_arrow_back_black_24dp" />

    </android.support.v7.widget.Toolbar>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X