2017-04-12 2 views
0

Je suis le débutant à android. Je veux créer un tiroir de menu de navigation. Quand je clique sur l'icône, il va s'ouvrir. Et il affiche le fragment lorsque je clique sur l'élément de menu. Mais mon tiroir de navigation ne se ferme pas automatiquement lorsque je clique sur l'élément de menu. Chaque fois que je fermais le tiroir de navigation pour voir mon fragment. Je ne sais pas où changer mon code? Ci-joint j'ai attaché mon MainActivity.java, activity_main.xml. Quelqu'un s'il vous plaît aidez-moi.Mon tiroir de navigation ne se ferme pas après avoir cliqué sur l'élément de menu?

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/drawer_layout" 
    tools:context="com.example.yuvi.navdrawermanual.MainActivity"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:textAlignment="center" 
     android:orientation="vertical"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/main_msg" 
      android:textSize="20dp" 
      android:textAlignment="center" 
      android:text="@string/main_layout"/> 
     <FrameLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/frame_container"> 
     </FrameLayout> 
    </LinearLayout> 

    <android.support.design.widget.NavigationView 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:id="@+id/main_drawer" 
     app:menu="@menu/navigation_menu" 
     android:layout_gravity="start"> 
    </android.support.design.widget.NavigationView> 
</android.support.v4.widget.DrawerLayout> 

MainActivity.java

public class MainActivity extends AppCompatActivity { 
    private DrawerLayout mDrawerLayout; 
    private ActionBarDrawerToggle mToggle; 
    private NavigationView navigationView; 
    private android.app.FragmentTransaction fragmentTransaction; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mDrawerLayout=(DrawerLayout)findViewById(R.id.drawer_layout); 
     mToggle=new ActionBarDrawerToggle(this,mDrawerLayout,R.string.open,R.string.close); 
     navigationView=(NavigationView) findViewById(R.id.main_drawer); 

     mDrawerLayout.addDrawerListener(mToggle); 
     mToggle.syncState(); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
      @Override 
      public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
       int id=item.getItemId(); 
       android.app.FragmentManager fragmentManager= getFragmentManager(); 
       if(id==R.id.nav_acc){ 
        fragmentManager.beginTransaction().replace(R.id.frame_container,new FirstFragment()).commit(); 
       } 
       else if(id==R.id.nav_set){ 
        fragmentManager.beginTransaction().replace(R.id.frame_container,new SecondFragment()).commit(); 
       } 
       else if(id==R.id.nav_logout){ 
        fragmentManager.beginTransaction().replace(R.id.frame_container,new ThirdFragment()).commit(); 
       } 
       return false; 
      } 
     }); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     if(mToggle.onOptionsItemSelected(item)){ 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 
+0

Utiliser closeDrawers() – AbhayBohra

+0

Merci ....... – user3661367

Répondre

2

mis cette ligne:

mDrawerLayout.closeDrawer(GravityCompat.START); 

après:

navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
      @Override 
      public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
       int id=item.getItemId(); 
    /*-------------------HERE--------------------*/ 
+0

Merci .. J'ai une sortie maintenant .. – user3661367