簡體   English   中英

AppCompat Actionbar樣式

[英]AppCompat Actionbar styling

我目前正在嘗試使用AppCompat而不是ActionbarSherlock。 在Android 4+設備上,我沒有遇到任何問題,因為使用了正常的Actionbar和Holo主題。

ICS行動欄

然而,在較低的Android版本上,使用Theme.AppCompat.Light時會出現這種奇怪的外觀。

標准AppCompat Actionbar

Actionbar為白色,下方有藍線。

我能夠通過使用Android Asset Studio中的Android Action Bar Style Generator來生成一個自定義主題,其中包含一個實心的Actionbar而不是透明的ActionB。

AppCompat與Style Generator的自定義繪圖

將它與使用ActionbarSherlock時獲得的Actionbar進行比較時,它仍然有點難看。

ActionbarSherlock

AppCompat Actionbar在它自身與活動內容之間有一條非常清晰的黑線,而ICS的Actionbar或ActionbarSherlock的一條動作條從Actionbar到布局的轉換更為柔和。

我如何設計Actionbar的樣式,看起來真的像Android 4+上的那個?

您必須使用要放在背景上的圖像創建自己的樣式。 在style.xml中,您應該創建類似於此的東西:

價值觀/ styles.xml

    <style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/ActionBarTabStyle.MyAppTheme</item>
    </style>

    <style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="background">@drawable/your_background_image</item>
    </style>

值-V14 / styles.xml

    <style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:actionBarStyle">@style/ActionBarTabStyle.MyAppTheme</item>
    </style>

    <style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="android:background">@drawable/your_background_image</item>
    </style>

你可以使用這個9補丁圖像:

9補丁圖像

我用這個代碼:

<resources>

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="actionBarStyle">@style/ActionBarTheme</item>
</style>

<style name="ActionBarTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="background">@color/red_action_bar</item>
</style>

</resources>

我希望這段代碼有很大的幫助。

您必須覆蓋操作欄的主題

要在AppCompatActivity中顯示自定義圖標和顏色,我們可以粘貼此代碼:

價值觀/ styles.xml

<resources>

 <style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat">
    <item name="actionBarStyle">@style/ActionBar.Solid.MyAppTheme</item>
    <item name="icon">@drawable/ic_launcher</item>
</style>

<style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="background">@color/white</item>
</style>

值-V14 / styles.xml

<resources>

<style name="Theme.MyAppTheme" parent="@style/Theme.AppCompat.Light">
    <item name="android:actionBarStyle">@style/ActionBar.Solid.MyAppTheme</item>
       <item name="icon">@drawable/ic_launcher</item>
</style>

<style name="ActionBar.Solid.MyAppTheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="android:background">@color/app_titile_bar_color</item>
</style>

您也可以使用@ drawable / your_pic.png中的自定義背景圖片

要顯示應用圖標和文字,您還可以將其粘貼到您的活動中。

        // set action Bar icon & Text
    ActionBar mActionBar = getSupportActionBar();
    mActionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE
            | ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM