2015-07-13 81 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

如果繼承主題是'.NoActionBar','setNavigationIcon'什麼也不做。那是我的問題。 – Sunkas