アイテムが押し出されたときにナビゲーションドロワーを閉じるにはどうすればよいですか?


82

理想的には、ナビゲーションドロワーは、アイテムが押されたら閉じる必要がありますが、自動的には発生しません。どうやるか ?ありがとう!


ナビゲーションドロワーを取得するためにどのライブラリを使用しますか?
Ion Aalbers 2013年

回答:


235

とった!

private DrawerLayout mDrawerLayout;
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerLayout.closeDrawers();

完全に正常に動作しています。


2
どれだけの価値があるか聞いてください。
AXSM 2014年

3
アニメーションなしで閉じることはできますか?
Hamzeh Soboh 2015

1
Hamzeh-mDrawerLayout.closeDrawer(Gravity.LEFT、false); アニメーションなしで閉じることになります
Psi-Ed

mDrawerLayout.closeDrawer(GravityCompat.START、false);
user35608 2718

10

私にとってこれはうまくいきました-

mDrawerLayout.closeDrawer(Gravity.START, false);

5
DrawerLayout mDrawerLayout= (DrawerLayout) findViewById(R.id.drawer_layout)

closeDrawer(); // called when you want to close

public void closeDrawer() {
  if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
    mDrawerLayout.closeDrawer(GravityCompat.START);
  }
}

2

onNavigationItemSelectedの右下、スイッチケースが終了する場所で、これを修正する必要があります。mDrawerLayout.closeDrawers();

public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()){

        }
   mDrawerLayout.closeDrawers();
   return true;
}

2

ドロワーレイアウトとしてmDrawerLayoutがある場合は、開いているときに閉じることができます。

@Override
public void onBackPressed() {
    if (this.mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
        this.mDrawerLayout.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}

0
closeDrawer();//when you want to call

public void closeDrawer() {
    if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
        mDrawerLayout.closeDrawer(GravityCompat.START);
    }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.