2

我的應用程序使用ActionBarCompat庫還有NavigationDrawer支持庫。 我使用ActionBarDrawerToggle appcompat v7來獲取抽屜。在ActionBar上有自定義搜索視圖。就像這樣:抽屜指數在動作條COMPAT V7 21

enter image description here

但抽屜指示燈顯示錯誤,不顯示後退箭頭時動作搜索視圖中展開; enter image description here

我想讓它顯示像Play商店中的應用程序:

enter image description here

我該怎麼辦呢?提前致謝。

回答

1

,因爲你在你的主題設置(android:)homeAsUpIndicator你說的問題。刪除該屬性將解決您的問題。

0

這不是從ActionBarDrawerToggle的箭頭。我認爲Google使用Toolbar就像他們在Google io應用中一樣。在OnClick事件中,他們只需用toolbar.setNavigationIcon(R.id.ic_up)即可更改工具欄導航圖標。和R.id.ic_up - 是一個自定義箭頭繪製。

+0

謝謝。我會試試看。 – 2014-10-29 15:39:33

+0

我試過了。你不需要調用'toolbar.setNavigationIcon(R.id.ic_up)'。它默認情況下發生。 – 2014-10-30 03:33:39

+0

它的奇怪,因爲如果你使用新的AppCompat庫和主題,ActionBar實際上是工具欄 – Wayne 2014-10-30 07:02:27

3

有一個簡單而快速的解決方案。

首先,您應該知道現在android.support.v4.app.ActionBarDrawerToggle已被棄用。 你必須用android.support.v7.app.ActionBarDrawerToggle替換它。

以下是顯示相同的示例。

DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
 
    ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(
 
     this, mDrawerLayout, mToolbar, 
 
     R.string.navigation_drawer_open, R.string.navigation_drawer_close 
 
    ); 
 
    mDrawerLayout.setDrawerListener(mDrawerToggle);

在使用支持操作欄的後面,表示here in this documentation,然後你的抽屜指示燈將顯示正確也呈現出後退箭頭時動作搜索視圖中展開。

記住使用com.android.support:appcompat-v7:21.0.+」(API等級21) 和android.support.v7.app.ActionBar

您可以使用此設置支持庫guide

,之後你的抽屜指示燈會完全是這樣的.. !!!

AND then your drawer indicator will perfectly look like this.

+0

請仔細閱讀我的問題。無論如何,這個問題已經解決了。感謝您的回答。 – 2014-11-13 03:00:17

0

對我來說,沒有在這裏這麼激動發佈的解決方案。我不得不下個看看爲支持庫找出爲什麼以及何時是主圖標集,我注意到一些事情。主要觀察的是,圖標在此功能設置:

android.support.v7.widget.Toolbar#setNavigationIcon(android.graphics.drawable.Drawable) 

上線

mNavButtonView.setImageDrawable(icon); 

如果你正面臨同樣的問題,因爲我是和沒有任何建議的解決方案工作(設定主題,試圖在工具欄上調用setNavigationIcon,在Actionbar上調用setHomeAsUpIndicator或者其他東西),我建議找到上面提到的函數,並在那裏放置斷點。然後您可以看到函數何時被調用,並確定設置圖標的最後一個函數調用(從android studio中的Frame窗口)。對我來說,這是本次活動的生命週期方法同步導航抽屜:

@Override 
protected void onPostCreate(Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 
    mDrawerToggle.syncState(); 
    mToolbar.setNavigationIcon(R.drawable.ic_hamburger); 
} 

我只是簡單地添加最後一行,它的工作。