Làm thế nào để đóng ngăn điều hướng khi một mục được nhấn từ nó?


82

Lý tưởng nhất là ngăn điều hướng sẽ được đóng lại khi một số mục đã được nhấn từ nó, nhưng nó không diễn ra tự động. Làm thế nào để làm nó ? Cảm ơn!


Bạn sử dụng libary nào để lấy ngăn điều hướng?
Ion Aalbers

Câu trả lời:


235

Hiểu rồi!

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

Hoạt động hoàn toàn tốt.


2
Hỏi một cái gì đó mà giá trị.
AXSM

3
Nó có thể được đóng lại mà không có hoạt ảnh?
Hamzeh Soboh

1
Hamzeh - mDrawerLayout.closeDrawer (Gravity.LEFT, false); sẽ dẫn đến việc đóng nó mà không có hoạt ảnh
Psi-Ed

mDrawerLayout.closeDrawer (GravityCompat.START, false);
user3560827

10

Đối với tôi cái này đã hoạt động -

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

Ở dưới cùng bên phải của onNavigationItemSelected nơi trường hợp chuyển đổi kết thúc, bạn phải điều này. mDrawerLayout.closeDrawers ();

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

        }
   mDrawerLayout.closeDrawers();
   return true;
}

2

Nếu bạn có mDrawerLayout làm bố cục ngăn kéo của mình, bạn có thể đóng nó khi nó đang mở.

@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);
    }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.