Панель инструментов - добавьте кнопку "вверх"
Я пытаюсь использовать панель инструментов вместо ActionBar, но я не могу понять, как добавить кнопку "вверх", чтобы вернуться к предыдущему действию.
Я не мог найти никакого метода, который мог бы связать его.
Как добавить кнопку "вверх"?
Ответы
Ответ 1
Я предполагаю, что вы ищете что-то вроде этого:
Toolbar toolbar = (Toolbar) findViewById(R.id.app_bar_detail);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Или в случае использования в фрагменте:
Toolbar toolbar = (Toolbar) view.findViewById(R.id.app_bar_detail);
((ActionBarActivity) getActivity()).setSupportActionBar(toolbar);
((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Это отобразит вашу панель действий внутри вашей панели инструментов, но не волнуйтесь, что все будет хорошо сочетаться. Последнее, что вам нужно сделать, если вы не хотите, чтобы тень под панелью действий или какой-либо другой фон, изменили вашу тему в vaules/styles.xml.
<style name="AppThmeme.Base" parent="Theme.AppCompat.NoActionBar">
Ответ 2
Если вы хотите сделать это в XML, вы можете использовать...
<android.support.v7.widget.Toolbar
app:navigationIcon="?homeAsUpIndicator"
...
Ответ 3
Вызов getSupportActionBar().setHomeButtonEnabled(true);
должен работать, я думаю, до тех пор, пока вы уже вызвали setSupportActionBar(toolbar);
Ответ 4
Вы можете добавить свою собственную кнопку "вверх" на панели инструментов, ведь это всего лишь ViewGroup.
Вы можете настроить панель инструментов столько, сколько хотите, в вашем toolbar.xml или везде, где вы определили файл android.support.v7.widget.Toolbar в своем макете, добавьте свою кнопку "вверх", как показано ниже:
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:minHeight="?attr/actionBarSize"
android:layout_height="?attr/actionBarSize"
android:background="@drawable/color_toolbar"
android:layout_width="match_parent">
<ImageButton
android:id="@+id/upButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="uphandler"
android:src="@drawable/backbutton"
android:layout_gravity="end"/>
</android.support.v7.widget.Toolbar>
Теперь определите функцию uphandler в вашей деятельности, чтобы прослушать эту кнопку вверх:
public void uphandler(View v){
this.finish(); // This will kill current activity, and if previous activity is still opened in background, it will come in front.
}