Проблемы с кнопкой Домой на панели инструментов

Я знаю, что это общий вопрос, но я пробовал много решений Stackru, и любое решение работает.

Я хочу показать кнопку домой на панели инструментов, но она показывает кнопку назад или ничего.

Я пробовал разные коды, такие как:

    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);

Теперь у меня есть код:

    setSupportActionBar(toolbar);
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

и это показывает кнопку назад.

Любое решение, чтобы показать кнопку Домой? Спасибо за помощь.

Извините, если мой английский слишком плохой.

1 ответ

Решение

Вы должны использовать DrawerToggle для управления состоянием DrawerLayout.

Использование собственного значка на самом деле не очень хороший способ для достижения этого, вы должны использовать Material Colors, чтобы изменить цвет кнопки переключения.

Это рабочий пример этого:

        mToolbar = (Toolbar) findViewById(R.id.toolbar);
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);

        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar,  R.string.drawer_open, R.string.drawer_close) {

            /** Called when a drawer has settled in a completely closed state. */
            public void onDrawerClosed(View view) {
                super.onDrawerClosed(view);

                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
            }

            /** Called when a drawer has settled in a completely open state. */
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);

                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
            }
        };


        // Set the drawer toggle as the DrawerListener
        mDrawerLayout.setDrawerListener(mDrawerToggle);
        mDrawerToggle.syncState();
Другие вопросы по тегам