导航到下一个活动时更改操作栏颜色及其文本对齐方式

Posted

技术标签:

【中文标题】导航到下一个活动时更改操作栏颜色及其文本对齐方式【英文标题】:Change Actionbar color and its text alignment When navigating to next activity 【发布时间】:2017-01-07 14:35:50 【问题描述】:

我想在我的 android 应用中更改 ActionBar 的颜色。

如果我单击按钮转到下一个活动,我也想更改操作栏颜色,但它显示“不幸的是,应用程序已停止”。

下面是我的代码,如果有什么问题请告诉我..?

我的代码:

清单代码:

<application
    android:allowBackup="true"
    android:icon="@drawable/app_icon_152"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@android:style/Theme.Light">
    <activity
        android:name=".WelcomeScreen"
        android:theme="@style/SplashTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".SignIn"
        android:label="Sign In"
        android:theme="@style/MyTheme"
        android:parentActivityName=".WelcomeScreen"></activity>
</application>

values/theme.xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:titleTextStyle">@style/TitleBarTextColor</item>
    <item name="android:background">#3366CC</item>
    <item name="android:icon">@drawable/backarrow_white</item>
</style>
<style name="TitleBarTextColor"     parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">#ffffff</item>
</style>
</resources>

values/styles.xml 代码:

<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowActionBar">true</item>
</style>
<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowBackground">@drawable/splashscreen</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">false</item>
</style>
</resources>

任何帮助将不胜感激。提前致谢。

【问题讨论】:

【参考方案1】:

最佳做法是使用工具栏:See this android developers page。

使用工具栏,您可以设置您想要使用的布局并更改背景颜色和文本对齐方式。

【讨论】:

谢谢哥们。我必须为后退按钮、中心文本和文本颜色设计自定义工具栏。对吗? 您可以根据需要自定义布局(文本重力、颜色...)。使用 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 设置后退按钮; getSupportActionBar().setDisplayShowHomeEnabled(true);【参考方案2】:

试试这个

<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">ANY_HEX_COLOR_CODE</item>
</style>

【讨论】:

actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#000000")));试试这个 你能复制你的日志猫吗?【参考方案3】:

你没有显示你的java代码,这个错误是从哪里开始的,但试试这个

 ActionBar actionBar = getSupportActionBar();
        actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#95CDBA")));
        actionBar.setTitle(html.fromHtml("<font color='#000099'>Hello World</font>"));

和进口

android.support.v7.app.ActionBar actionBar = getSupportActionBar();

【讨论】:

以上是关于导航到下一个活动时更改操作栏颜色及其文本对齐方式的主要内容,如果未能解决你的问题,请参考以下文章

导航栏活动元素在不应该在悬停时更改颜色?

转到下一个视图会更改导航栏背景颜色

iOS 7 中 UIActivityViewControllers 的模态状态栏和导航栏文本颜色

如何在iOS 7上更改状态栏背景颜色和文本颜色? Warif Akhand Rishi

如何更改折叠导航栏中项目的对齐方式?

更改活动导航项的颜色并显示相对于导航栏项的页面