2016-07-29 3 views
2

私は自分のアプリでナビゲーション引き出しを使用しています。ユーザーがその項目のいずれかをクリックすると、別のアクティビティーに移動しますが、ユーザーが引き出しページに戻ってもまだ開いています。そのアイテムがクリックされたら、その引き出しを閉じる方法。クローズナビゲーション引き出しのいずれかの項目をクリックした後

+0

コールインテントを閉じる前に引き出しを閉じます。詳細については、コードを投稿してください。 –

+0

私は解決策を投稿しました。まだ解決されていない場合はここにコードを投稿してください –

+0

[アイテムを押したときにナビゲーションドロワーを閉じる方法は?](http://stackoverflow.com/questions/19194526/how-to-close-navigation-drawer -w-an-item-is-pressed-from-it) –

答えて

1

のクリックで他を起動する前にこのメソッドを呼び出しを逃したと思うNavigationDrawerを閉じるためにdrawerLayout.closeDrawers();を使用することができますcloseDrawer()メソッドを使用して引き出しを閉じ、引き出しのリスナーで他のアクティビティを開始します。

たとえば、

@Override 
public void onDrawerClosed(View drawerView) { 
    super.onDrawerClosed(drawerView); 

    //Start your activity 
} 
1

あなたは別の活動

0

に行く前に、私はあなたがcloseDrawer()だけのナビゲーションアイテムIntent

drawerLayout.closeDrawer(GravityCompat.END); 
0
@SuppressWarnings("StatementWithEmptyBody") 
@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
int id = item.getItemId(); 
    // Create a new fragment and specify the fragment to show based on nav item clicked 
    Fragment fragment = null; 
    Class fragmentClass = null; 
    if (id == R.id.nav_item1) { 
     fragmentClass = home.class; 
     // Handle the camera action 
    } 
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawer.closeDrawer(GravityCompat.START); 
if(fragmentClass.newInstance() instanceof Fragment) { 
      fragment = (Fragment) fragmentClass.newInstance(); 

      if (fragmentClass.getSimpleName().equals("home")) { 

       // Insert the fragment by replacing any existing fragment 
       FragmentManager fragmentManager = getSupportFragmentManager(); 

       fragmentManager.beginTransaction().replace(R.id.home_layout, fragment).commit(); 
       // Highlight the selected item has been done by NavigationView 
       item.setChecked(true); 
       // Set action bar title 
       setTitle(item.getTitle()); 
       // Close the navigation drawer 
       drawer.closeDrawers(); 
      } 
     } 
関連する問題