使用主题AppCompat Light更新操作栏样式

时间:2015-06-12 18:22:00

标签: android android-layout android-fragments

我正在尝试跟随样式文件,但无法更改操作栏的字体和文本位置。我想在我的样式表中这样做。

<resources>
    <!-- Base application theme. -->
    <!-- Theme.AppCompat.Light.NoActionBar, Theme.Holo.Light -->
    <style name="AppTheme" parent="Theme.AppCompat.Light">
        <!-- Customize your theme here. -->
        <item name="android:windowBackground">@color/white</item>
        <item name="colorPrimary">@color/green</item>
        <item name="android:textColorPrimary">@color/white</item>
        <item name="android:actionBarStyle">@style/AppActionBarStyle</item>
    </style>

    <style name="AppActionBarStyle" parent="Widget.AppCompat.TextView.SpinnerItem">
        <item name="android:textSize">25sp</item>
        <item name="android:layout_gravity">center</item>
    </style>

</resources>

2 个答案:

答案 0 :(得分:2)

我尝试了所有研究,最后得出结论,最好创建自定义操作栏。

以下是两个非常简单的步骤(从不同形状的不同线程获取,并在此处编译)。我希望这对任何人都有帮助(你只需要在你的代码中复制和过去)

步骤1:在(app / res / layout /)创建一个XML文件,将其命名为custom_action_bar.xml

步骤2:在此文件中粘贴以下代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/actionBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@color/green">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/register"
        android:id="@+id/action_bar_text"
        android:textSize="20sp"
        android:textStyle="bold"
        android:layout_gravity="center"
        android:textColor="@color/white" />

</LinearLayout>

步骤3:在位于(app / java / your_package_name / your_activity_name)的活动类的onCreate函数中粘贴以下代码

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.custom_action_bar);

答案 1 :(得分:0)

我认为您应该从Widget.AppCompat.ActionBar继承操作栏样式并尝试覆盖以下项目

<style name="AppActionBarStyle" parent="Widget.AppCompat.ActionBar">
        <item name="titleTextStyle">@style/MyTextAppearance</item>
        <item name="android:gravity">center</item>
</style>
<style name="MyTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textSize">25sp</item>
        <item name="android:textStyle">bold</item>
</style>