2015-07-13 5 views
1

Я хочу обычную кнопку возврата вместе с пользовательской панелью инструментов. Возможно ли это, или мне нужно настроить кнопку «Назад» самостоятельно (как обычай?) ?.Дизайн материалов: Расширенная панель инструментов + Кнопка возврата

style.xml:

<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="colorControlNormal">#4F8092</item> 
    <item name="colorControlActivated">#4F8092</item> 
    <item name="colorControlHighlight">#4F8092</item> 
    <item name="colorPrimary">#fff</item> 
    <item name="colorPrimaryDark">#4F8092</item> 
    <item name="colorAccent">#4F8092</item> 

    <item name="android:windowActionModeOverlay">true</item> 
</style> 

MyActivity.java:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_actionlist); 

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

В onCreate я добавил их после setSupportActionBar:

toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha); 
getSupportActionBar().setDisplayShowHomeEnabled(true); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

без успеха. Все, что происходит, это то, что мой пользовательский вид смещен вправо, например, кнопка, оставив остальную часть содержимого вправо. Но кнопка не видна.

активность XML:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/activity_action_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/rym_blue" 
     app:contentInsetEnd="0dp" 
     app:contentInsetStart="0dp" 
     android:elevation="4dp"> 
... 

ответ

3

в моих кодов я сделал, как этот

в XML я добавил navigationIcon

<android.support.v7.widget.Toolbar 
    android:id="@+id/product_toolBar_title" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:fitsSystemWindows="true" 
    app:layout_collapseMode="pin" 
    app:navigationIcon="@drawable/ic_arrow_back_white_24dp" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 

и в Java коде.

ToolBar.setNavigationOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      getActivity().onBackPressed(); 
     } 
    }); 
+0

Спасибо , Настройка 'app: theme' на панели инструментов сделала трюк. Поскольку я использовал другую тему .NoActionBar для моей деятельности, она унаследовала до панели инструментов. – Sunkas

0

Вы можете достичь его в обоих направлениях:

1- Просто установите значок в OnCreate():

toolbar.setNavigationIcon(R.drawable.Your icon here); 

2- Определить значок как внутри панели инструментов макета XML:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
           android:id="@+id/toolbar" 
           android:minHeight="?attr/actionBarSize" 
           android:layout_width="fill_parent" 
           android:layout_height="wrap_content" 
           android:textColorPrimary="@color/white"> 
<!--Custom Views for ToolBar--> 
<ImageView 
     android:id="@+id/back" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_gravity="left" 
     android:layout_marginLeft="@dimen/margin_19" 
     android:src="@drawable/Your icon here"/> 

+0

'setNavigationIcon' ничего не делает, если тема наследования' .NoActionBar'. Это была моя проблема. – Sunkas

Смежные вопросы