Панель инструментов значок навигации никогда не установлено

? grunk @ | Original: StackOverFlow

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

На мой манифест я установить родителя к моей деятельности :

<activity android:name=".CardsActivity" android:parentActivityName=".MainActivity">
    <!-- Parent activity meta-data to support API level 7+ -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".MainActivity" />
</activity>

Я заявляю, панель инструментов, как это :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.example.lollitest.MainActivity" >

    <android.support.v7.widget.Toolbar
        android:id="@+id/my_awesome_toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:minHeight="?attr/actionBarSize"
        android:layout_marginBottom="10dp"
        android:background="?attr/colorPrimary" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/my_awesome_toolbar"
        android:text="@string/hello_world" />

</RelativeLayout>

Тогда в моей деятельности я настроить панель инструментов следующим образом:

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
toolbar.setNavigationIcon(R.drawable.ic_good);
toolbar.setTitle("Title");
toolbar.setSubtitle("Sub");
toolbar.setLogo(R.drawable.ic_launcher);
setSupportActionBar(toolbar);

Какие давая мне :  Панель инструментов значок навигации никогда не установлено

Иконка назад неодин я установить с setNavigationIcon() ! Независимо холст я дать методомзначок навигации всегдастрелку назад .

Я попытался удалить родительский ассоциации вманифесте, нотолько эффект (что очевидно), чтобы предотвратить кнопку, чтобы вернуться .

Напротив, если я хочу значок стрелки по умолчанию обратно и не называют setNavigationIcon() я не имеют никакого значка вообще.

Что такоеправильный способ справиться с значок навигации в панели инструментов ( обычая и по умолчанию) ?

Примечание: я бегу мой тест на Android 4.4



Top 5 Respuesta

1Gabriele Mariotti @

В настоящее время вы можете использовать его, изменив порядок : ( это, кажется,ошибка )

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);

toolbar.setNavigationIcon(R.drawable.ic_good);
toolbar.setTitle("Title");
toolbar.setSubtitle("Sub");
toolbar.setLogo(R.drawable.ic_launcher);


2user802421 @

Я думаю, вы также должны синхронизировать ActionBarDrawerToggle государство сDrawerLayout .

// Taken from Android Studio generated NavDrawerFragment.setUp() method
mDrawerLayout.post(new Runnable() {
    @Override
    public void run() {
        mDrawerToggle.syncState();
    }
});

Мне нужно запуститьвыше Runnable, когда я скрывать и reshow тумблер с getActionBar().setDisplayHomeAsUpEnabled(true / false); .

3Alexey Korolev @

(Ответ на user802421 )

private void setToolbar() {
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    if (toolbar != null) {
        setSupportActionBar(toolbar);
        toolbar.setNavigationIcon(R.drawable.ic_action_back);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });
    }
}

toolbar.xml

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/toolbar_height"
    android:background="?attr/colorPrimaryDark" />