2017-08-13 1 views
2

J'essaie d'afficher une barre de navigation inférieure avec 3 éléments à l'intérieur d'un fragment, et elle s'affiche correctement sans erreurs dans mon code. Mais le fait est que lorsque je clique sur l'une des options, le code supposé être exécuté ne fonctionne pas, il ne consigne même pas de contenu sur la console.

TransporteFragment.Java:La barre de navigation inférieure ne fonctionne pas à l'intérieur du fragment

import android.os.Bundle; 
import android.support.annotation.NonNull; 
import android.support.design.widget.BottomNavigationView; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.view.LayoutInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 


/** 
* A simple {@link Fragment} subclass. 
*/ 
public class TransporteFragment extends Fragment { 


    public TransporteFragment() { 
     // Required empty public constructor 
    } 

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener 
      = new BottomNavigationView.OnNavigationItemSelectedListener() { 

     @Override 
     public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
      switch (item.getItemId()) { 
       case R.id.action_busC1: 

        return true; 
       case R.id.action_busC2: 
        BusC2Fragment busC2Fragment = new BusC2Fragment(); 
        FragmentManager fragmentManager = getChildFragmentManager(); 
        fragmentManager.beginTransaction().replace(R.id.espacioLineas, busC2Fragment).commit(); 
        return true; 
       case R.id.action_busC3: 

        return true; 
      } 
      return false; 
     } 

    }; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     final View v = inflater.inflate(R.layout.fragment_transporte, container, false); 

     BottomNavigationView navegacion = (BottomNavigationView) v.findViewById(R.id.navbartransporte); 
     navegacion.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); 


     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.fragment_transporte, container, false); 
    } 

} 

fragment_transporte.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.gberti.smarthuesca.TransporteFragment"> 



    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/espacioLineas"> 

    </FrameLayout> 
    <android.support.design.widget.BottomNavigationView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/navbartransporte" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom" 
     android:layout_alignParentBottom="true" 
     android:background="@color/white" 
     app:menu="@menu/navbar_transporte_items" /> 
</RelativeLayout> 

Merci.

Répondre

1

Dans votre méthode onCreateView au lieu de return inflater.inflate(R.layout.fragment_transporte, container, false); essayer return v;

+0

Merci beaucoup. C'était le seul problème, et j'avais pensé qu'il n'y aurait pas de problème, mais maintenant cela fonctionne parfaitement. –