2013-07-12 81 views
2

我在我的操作欄中使用微調導航。除了造型以外,一切正常。樣式ActionBar微調導航看起來像它的標題和副標題

我想微調導航看起來像其中有一個標題和副標題的動作條: enter image description here

但是,如果使用微調導航,我要設置標題和副標題爲空字符串,並提供本人自己的微調視圖。我是這樣做的,但它看起來像這樣: enter image description here

問題:使上圖中的Spinner看上去與上圖中的樣式相同的樣式是什麼?

注:我試圖設置TextViews textAppearance分別爲android:textAppearance="@android:style/TextAppearance.Medium"android:textAppearance="@android:style/TextAppearance.Small",但它沒有奏效。

我使用原生Actionbar,而不是ABS。

+0

在我看來,你應該爲微調器的項目創建自定義xml,並使用文本大小來使它變成這樣。 – hardartcore

+0

我會玩得開心,但我很確定有不同的佈局有不同的風格噸。我知道有幾種不同尺寸的動作條高度,我可以用單個'@ dimen/abs__action_bar_default_height'獲得它們(這實際上是爲了actionbarsherlock,但是對於規則動作條有相似的值)。我正在尋找類似的東西。 –

回答

3

這些項目的hieght在/<android-sdk>/platforms/android-15/data/res/values/dimens.xml文件中定義的,就像這樣:

<dimen name="action_bar_default_height">48dip</dimen> 
<dimen name="action_bar_title_text_size">18dp</dimen> 
<dimen name="action_bar_subtitle_text_size">14dp</dimen> 
<dimen name="action_bar_subtitle_top_margin">-3dp</dimen> 
<dimen name="action_bar_subtitle_bottom_margin">5dip</dimen> 

(詳情點擊這裏:https://stackoverflow.com/a/11686495/989029

你應該重新定義所需的值(請注意,這些值不同的方向是不同的,所以你需要幾個文件),並在你的res文件夾中使用它們:

actionbar_spinner_item.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:orientation="vertical" 
    android:paddingLeft="5dp" 
    android:paddingRight="5dp"> 

    <TextView 
     android:id="@+id/action_bar_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ellipsize="end" 
     android:singleLine="true" 
     android:text="@string/title_activity_main" 
     android:textSize="@dimen/action_bar_title_text_size" 
     android:textColor="@android:color/primary_text_dark" 
     android:textStyle="bold" /> 

    <TextView 
     android:id="@android:id/text1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="@dimen/action_bar_subtitle_top_margin" 
     android:ellipsize="end" 
     android:singleLine="true" 
     android:textColor="@android:color/primary_text_dark" 
     android:textSize="@dimen/action_bar_subtitle_text_size" /> 

</LinearLayout> 

我在getView()方法中的自定義ArrayAdapter中使用此佈局。從你的截圖中,我假設你知道細節。

所有這些給出了以下結果,看起來和我測試過的所有設備上的預期一樣。 enter image description here

+0

我會在幾天內嘗試這個解決方案(然後接受它),但它看起來不錯。謝謝! –

+1

實際上我認爲通過像android:textSize =「@ anroid:dimen/action_bar_title_text_size」直接引用這些值可以更簡單,但我必須檢查它。儘管如此,感謝指向我的這些值 –

+0

Dunno,eclipse從來沒有在自動完成中向我展示這些值,直到我將它們重新導入到我自己的文件中。 –