java - 工具栏汉堡包干扰后退箭头按钮

标签 java android

我正在设置一个装有汉堡包的抽屉,当我打开一个 fragment 时,我想删除汉堡包并将其替换为调用 onBackPressed() 的箭头。

发生的情况是汉堡包被箭头替换,但箭头上的监听器没有被调用。如果我完全删除 ActionBarDrawerToggle 它将起作用。我该如何解决这个问题?

打开新 fragment :

    Fragment_Subjects frag = new Fragment_Subjects();
    fm.beginTransaction()
            .replace(R.id.mainContainer, frag)
            .addToBackStack(null)
            .commit();
    toggle.setDrawerIndicatorEnabled(false);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);

设置抽屉开关:

    drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    toggle = new ActionBarDrawerToggle(this, drawer, mToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); //back arrow works when this line is removed
    assert drawer != null;
    drawer.setDrawerListener(toggle);
    toggle.syncState();

后退箭头监听器:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;
    }
    return super.onOptionsItemSelected(item);
}

onBackPressed:

@Override
public void onBackPressed() {

    if(drawer.isDrawerOpen(Gravity.START)){
        drawer.closeDrawer(Gravity.START);
    }else{
        super.onBackPressed();
    }
}

最佳答案

试试这个:

 toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
              onBackPressed();
        }
 });

关于java - 工具栏汉堡包干扰后退箭头按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38230581/

相关文章:

android - 一种布局覆盖另一种布局

java - 在应用程序类中注册时存在广播接收器泄漏的风险

java - 保留按钮 :focus when changing Tabs in TabPane

java - 单击操作栏中的共享应用程序链接时出现问题

java - Vertx 缩放每个线程的实例数

java - 经过 Android 验证后无法在 Firebase 中添加

java - 套接字编程 : Delay

android:onClick xml 未执行

android - React Native - 一个全新的应用程序只显示黑屏。如何调试?

java - Spring、Interceptor的extractPathPatterns功能无法正常工作