改变AppBar的颜色

时间:2016-12-29 12:00:13

标签: android android-layout android-studio android-styles

我想了解一下,ToolbarAppbarActionBar之间有什么区别。而我正试图改变我的AppBar的颜色或其他任何颜色为红色。

有人提到尝试更改主题。我试过但不知道差异,我也是android编程的新手。所以,如果你能帮助我。这是styles.xml文件代码

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"
    >

    <item name="android:titleTextStyle">@style/MyTextTitle</item>
</style>

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" >
    <item name="android:titleTextStyle">@style/MyTextTitle</item>

</style>

<style name="MyTextTitle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">@color/red</item>
</style>

Look in the image. I want to change the color of MoboLock text.

我希望你明白我想说的话。并原谅我的无知,因为我渴望学习它,所以不能等待。

4 个答案:

答案 0 :(得分:5)

引用developer.android.com

  

应用栏,也称为操作栏,是其中之一   应用程序活动中的重要设计元素....

material.io

  

应用栏(以前称为Android中的操作栏)非常特别   用于品牌推广,导航,搜索和工具的工具栏   操作

再次来自developer.android.com

  

工具栏是在其中使用的操作栏的概括   应用程序布局。动作栏传统上是动作栏的一部分   Activity的不透明窗口装饰由框架控制,工具栏   可以放置在视图中嵌套的任意级别   层次结构。应用程序可以选择将工具栏指定为   使用setActionBar()方法的活动操作栏。

如果不清楚,您需要根据我们的主题Toolbar支持更多来清除两个词首先概括 vs 专业化 em>聚焦特征集而不是ActionBar

进一步来自blog.xamarin.com

  

您可以将工具栏视为Action Bar的更大兄弟   已经长大,可以自由地在房子周围漫游。

让我们清楚上面提到的事情

我已经制作了一个navigationDrawerActivity,我可以轻松创建并为您做一些改变以清除混乱。

我改变了AppBarLayout的颜色 从它的位置移除工具栏并设置在content_main.xml内部,因为如果两个站在同一位置,您可能无法理解!

enter image description here

看到你可以把它放在任何地方!

如果您想更改AppBarLayout的颜色,请在其中添加android:background="@color/your_color"

现在,如果你阅读上面的引号,你知道哪一个是toolbar

这是我的action_bar_main.xml(我从中移除了toolbar并将其设置在content_main.xm l)

现在您要求更改toolbar

的文字颜色

如果您愿意,可以为include设置自己的设计布局。

<android.support.v7.widget.Toolbar android:id="@+id/toolbar"
            android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" >
            <include layout="@layout/toolbar_inflater" />
        </android.support.v7.widget.Toolbar>

如果您只想更改背景颜色,请更改为background

   <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/green"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

请参阅我根据需要夸大了布局。您可以根据自己的喜好添加视图。

或者如果您想使用代码

更改工具栏中的文本
 CharSequence title = "Your App Name";
        SpannableString s = new SpannableString(title);
        s.setSpan(new ForegroundColorSpan(Color.RED), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        getSupportActionBar().setTitle(s);

甚至可以通过更改主题的文本颜色来实现。阅读www.murrayc.com帖子和this以及this以及帖子

旁注:设置应用栏

如果你去developer.android.com它说,

  

从Android 3.0(API级别11)开始,使用的所有活动   默认主题将ActionBar作为应用栏。不过,app吧   功能已逐渐添加到本机ActionBar中   各种Android版本。因此,本机ActionBar的行为   不同取决于Android系统的哪个版本的设备   可能正在使用。相比之下,最新的功能被添加到   支持库的工具栏版本,它们可用于任何版本   可以使用支持库的设备。

     

出于这个原因,您应该使用支持库的工具栏类   实现你的活动的应用栏。使用支持库   工具栏有助于确保您的应用具有一致的行为   跨越最广泛的设备。例如,工具栏小部件   在运行Android 2.1的设备上提供材料设计体验   (API级别7)或更高版本,但本机操作栏不支持   材料设计,除非设备运行Android 5.0(API级别   21)或以后

在上面的说明中,有一个主要的子主题向活动添加工具栏,强烈要求您使用developer.android.com

工具栏

所以再见App Bar向你致Toolbar

答案 1 :(得分:0)

在您的应用主题中尝试此操作:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
</style>

enter image description here

希望他能帮助你

答案 2 :(得分:0)

试一试,<color name="colorPrimary">#0b0b0c</color> <color name="colorPrimaryDark">#0b0b0c</color> <color name="colorAccent">#FF4081</color> Whatever color to change in hexadecimal code.then see ur app changes made it.

答案 3 :(得分:0)

您可以使用Appbar的Instance = function(args, callback) { valargs([], function(err){}); } function valargs(array, callback){ console.log(array, callback) callback(null); } Instance();方法更改颜色。 如果你有标签栏,你可以像这样设置setBackgroundColor

OnTabSelectedListener