2015-01-05 59 views
1

我正在使用getSupportActionBar().setIcon(R.drawable.ic_transparent);來設置我的工具欄的圖標。如何從該圖標獲取ImageView?我需要圖標的Rect從getSupportActionBar獲取ImageView()

我正試圖用Toolbar而不是舊的動作條來實現this的版本。

編輯:我想出了一個替代解決方案,將TextView和ImageView放在工具欄中,而不是使用內置的徽標和標題。這在Android 5.0上可以正常工作,但文本不會顯示在下面的任何東西上。任何建議來解決這個或上述?

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/actionBarSize" 
    android:background="@android:color/transparent" 
    android:elevation="10dp" 
    tools:ignore="UnusedAttribute"> 

    <ImageView 
     android:id="@+id/toolbar_icon" 
     android:layout_width="?android:attr/actionBarSize" 
     android:layout_height="?android:attr/actionBarSize" 
     android:padding="10dp" 
     android:scaleType="fitStart" 
     android:src="@drawable/ic_transparent" /> 

    <TextView 
     android:id="@+id/toolbar_title" 
     style="@style/Base.TextAppearance.AppCompat.Widget.ActionBar.Title" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:gravity="center_vertical" 
     android:text="hello" /> 

</android.support.v7.widget.Toolbar> 

回答

1

很難說。

正確答案:你不應該說不是由自己(即,如果有不爲ImageView getter方法,你應該把它它在哪裏)設計的內部部件的混亂。見here

有點多哈哈回答:你可能想試試this custom method。它根據它們的ContentDescription搜索視圖。我從來沒有嘗試過,但它可以工作。

+0

我在哪裏可以獲得徽標的內容描述?這是與導航圖標AFAIK不同的元素。 – sargunster

+0

我認爲它應該可以。如果沒有,請使用toolbar.setNavigationIcon()而不是actionbar.setIcon()。 – natario

+0

我不想使用導航圖標,因爲它是可點擊的。無論如何,我現在解決了它。 – sargunster

0

我給它看一看,只是看到一個私有函數getActionBarIconView(),它返回一個imageview內的活動NoBoringActionBarActivity只是改變它爲public,如果你需要在外部片段中使用它。

0

我通過將我自己的ImageView和TextView添加到工具欄來代替徽標和標題,然後通過將工具欄移動到佈局文件的末尾來修復Android 4.0-4.4上的不可見標題。我不知道爲什麼我必須這樣做,但它的工作。