Кнопка «Вверх» на панели инструментов Android не отображается

Я создал активность для хранения фрагментов. Кнопка вверх не отображается на панели инструментов при ее запуске или в предварительном просмотре xml.

Это код, который я использовал для добавления панели инструментов в действие.

Toolbar mToolbar = (Toolbar) findViewById(R.id.category_toolbar);
setSupportActionBar(mToolbar);

if(getSupportActionBar() != null){
    getSupportActionBar().setTitle("Test");
    getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
}

Я использовал все правильные библиотеки (AppCompatActivity). Это действие содержит фрагмент, и он не отображается.

XML для активности

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <android.support.v7.widget.Toolbar
        android:id="@+id/category_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@style/toolbar">
    </android.support.v7.widget.Toolbar>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/fragment_container">

    </LinearLayout>

</LinearLayout>

Я также установил родительскую активность в файле манифеста.

 <activity android:name=".TestActivity"
                  android:parentActivityName=".MainActivity">

        </activity>

Есть ли что-нибудь еще, что мне нужно добавить, чтобы заставить его работать?

Спасибо


person Martin    schedule 04.05.2016    source источник
comment
Обычно вы используете FrameLayouts для контейнеров Fragment, но сразу кажется, что в этом нет ничего плохого. getSupportActionBar().setDisplayHomeAsUpEnabled(true); должно быть все, что вам нужно   -  person OneCricketeer    schedule 04.05.2016
comment
Спасибо @cricket_007, я использовал неправильный метод, ха-ха   -  person Martin    schedule 05.05.2016


Ответы (1)


Поскольку вы используете AppCompatActivity в качестве базовой активности, использование setDisplayHomeAsUpEnabled(true) вместо setDefaultDisplayHomeAsUpEnabled(true) решит вашу проблему.

setDefaultDisplayHomeAsUpEnabled(true) будет работать, если вы используете ActionBarActivity.

person schinj    schedule 04.05.2016