AppCompat V7工具栏onOptionsItemSelected不叫 [英] AppCompat v7 Toolbar onOptionsItemSelected not called

查看:639
本文介绍了AppCompat V7工具栏onOptionsItemSelected不叫的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从原来的动作条的AppCompat工具栏和setSupportActionBar(工具栏)更改。 当我使用getSupportActionBar()和setDisplayHomeAsUpEnabled(真)的后退箭头,点击永远不会调用onOptionsItemSelected或任何其他的侦听方法。

我一定要执行一些特殊的监听器呢? Befor一切工作就好了。

编辑: 初始化动作条:

  mToolbar =(工具栏)findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
mActionBar = getSupportActionBar();
mActionBar.setHomeButtonEnabled(真正的);
 

和一个片段我这样做更换后的内容:

  mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
mDrawerToggle.setDrawerIndicatorEnabled(假);
mActionBar.setDisplayHomeAsUpEnabled(真正的);
 

解决方案

我不得不实施OnClickListener的DrawerToggle:

  mDrawerToggle.setToolbarNavigationClickListener(新View.OnClickListener(){
    @覆盖
    公共无效的onClick(视图v){
        popStackIfNeeded();
        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
        mActionBar.setDisplayHomeAsUpEnabled(假);
        mDrawerToggle.setDrawerIndicatorEnabled(真正的);
    }
});
 

这固定我的问题。

I changed from the original ActionBar to the AppCompat Toolbar and setSupportActionBar(toolbar). When I am using getSupportActionBar() and setDisplayHomeAsUpEnabled(true) for the back arrow, the click never calls onOptionsItemSelected or any other listener method.

Do I have to implement some special listener for it? Befor everything was working just fine.

EDIT: Initialise the ActionBar:

mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
mActionBar = getSupportActionBar();
mActionBar.setHomeButtonEnabled(true);

and after replacing the content with a Fragment I do this:

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
mDrawerToggle.setDrawerIndicatorEnabled(false);
mActionBar.setDisplayHomeAsUpEnabled(true);

解决方案

I had to implement an OnClickListener for the DrawerToggle:

mDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        popStackIfNeeded();
        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
        mActionBar.setDisplayHomeAsUpEnabled(false);
        mDrawerToggle.setDrawerIndicatorEnabled(true);
    }
});

this fixed my issue.

这篇关于AppCompat V7工具栏onOptionsItemSelected不叫的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆