java - 如何先关闭抽屉然后调用onBackPressed?

标签 java android drawerlayout

我有一个带有抽屉布局的 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/

相关文章:

java - JAVA如何让给定长度的字节数组由其他给定长度的字节数组组成

java - 如何检测Android应用程序中的特定声音?

java - 处理 Fragment 中的 DrawerLayout

java - java中如何与字符串进行比较?

java - Hibernate EntityListeners - PrePersist 方法在持久调用之前修改模型 - 如果持久调用失败怎么办?

android - 登录后在另一个 Activity 中获取 Facebook 个人资料

android - 是否可以在 CoordinatorLayout 中居中布局/ View ?

android - gmail 类似进度条功能

android - 如何去除 android 5.0+ 中 DrawerLayout 顶部的阴影

java - 递归方法中的堆栈溢出错误