我有一个带有抽屉布局的 Activity 。
我想检查抽屉是否关闭,然后调用onBackPressed
。如果抽屉打开,则应先关闭,然后 onBackPressed
应该被调用。
我尝试使用 addDrawerListener 这样做
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpUI();
listeners(
}
public void setUpUI() {
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//Initializing NavigationView
navigationView = (NavigationView) findViewById(R.id.navigation_view);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer);
}
public void listeners()
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
}
@Override
public void onDrawerClosed(View drawerView) {
onBackPressed();
}
@Override
public void onDrawerStateChanged(int newState) {
}
});
}
@Override
public void onBackPressed()
drawerLayout.closeDrawer(Gravity.END);
if (!mBackPressCancelled) {
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStackImmediate();
} else {
super.onBackPressed();
}
}
}
}
随着这个抽屉的关闭,一半的应用程序被关闭。我想通过调用 onBaackPressed 来关闭抽屉。
我该怎么做?请帮忙。谢谢。
最佳答案
您可以检查抽屉是否关闭
if(mDrawerLayout.isDrawerOpen(GravityCompat.END)) {
//抽屉打开了
}别的{
super.onBackPressed();
}
关于java - 如何先关闭抽屉然后调用onBackPressed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45521282/