我在按下后退按钮时有这段代码
@Override
public void onBackPressed() {
if (drawerLayout.isShown()) {
drawerLayout.closeDrawers();
} else
super.onBackPressed();
}
如果抽屉打开,则抽屉关闭后按钮,但再次按后退按钮应用程序不会关闭。我想在抽屉未打开时按下后退按钮即可关闭应用程序。怎么办?
答案 0 :(得分:2)
The isShown()
method is a member of the View
class, and concerns visibility. You probably want one of the DrawerLayout#isDrawerOpen()
methods instead.
答案 1 :(得分:1)
使用drawerLayout.isDrawerOpen()
,而不是isShown()
,在这种情况下,它始终会返回true。这将导致else
语句的if
部分永远不会被执行。
答案 2 :(得分:0)
isShown()始终返回true。 也可以使用以下字段。
mDrawerLayout.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);