Android操作栏自定义视图导航指示器隐藏

时间:2013-10-07 20:47:54

标签: android android-actionbar navigation-drawer custom-view

我正在向操作栏添加自定义视图,但是当我这样做时,不会显示导航指示器图标。当我不显示自定义视图时,指示器显示并正常工作。

getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);
    getActionBar().setBackgroundDrawable(getResources().getDrawable(navConf.getBackgroundDraw()));

    if (0 != navConf.getActionBarCustomView()){
        getActionBar().setCustomView(navConf.getActionBarCustomView());
        getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM
                | ActionBar.DISPLAY_SHOW_HOME);
    }

    try{
        mDrawerToggle = new ActionBarDrawerToggle(
                this,
                mDrawerLayout,
                navConf.getDrawerIcon(),
                navConf.getDrawerOpenDesc(),
                navConf.getDrawerCloseDesc()
                ) {
            public void onDrawerClosed(View view) {
                getActionBar().setTitle(mTitle);
                ActivityCompat.invalidateOptionsMenu(AbstractNavDrawerActivity.this);
            }

            public void onDrawerOpened(View drawerView) {
                getActionBar().setTitle(mDrawerTitle);
                ActivityCompat.invalidateOptionsMenu(AbstractNavDrawerActivity.this);
            }
        };
    }
    catch (Exception ex){
        Log.e("ActionBarDrawerToggle: ", ex.toString());
    }

    mDrawerLayout.setDrawerListener(mDrawerToggle);

2 个答案:

答案 0 :(得分:0)

    getActionBar().setDisplayShowCustomEnabled(true);
    getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    getActionBar().setIcon(R.mipmap.icon_menu);
    getActionBar().setCustomView(getLayoutInflater().inflate(R.layout.actionbar_main, null),
            new ActionBar.LayoutParams(
                    ActionBar.LayoutParams.WRAP_CONTENT,
                    ActionBar.LayoutParams.MATCH_PARENT,
                    Gravity.CENTER
            )
    );
    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
            R.mipmap.icon_menu, //nav menu toggle icon
            0, // nav drawer open - description for accessibility
            0 // nav drawer close - description for accessibility
    ) {
        public void onDrawerClosed(View view) {
            getActionBar().setTitle(mTitle);
            // calling onPrepareOptionsMenu() to show action bar icons
            invalidateOptionsMenu();
        }

        public void onDrawerOpened(View drawerView) {
            getActionBar().setTitle(mDrawerTitle);
            // calling onPrepareOptionsMenu() to hide action bar icons
            invalidateOptionsMenu();
        }
    };

答案 1 :(得分:0)

将此标志添加为ActionBar显示选项:

ActionBar.DISPLAY_HOME_AS_UP