在我用Xamarin.Android编写的应用程序中。当应用程序刚刚打开时(应用程序打开的时间),状态栏颜色为灰色。
但是当应用程序最终运行时,状态看起来是我在Styles.xml中分配的深蓝色。
这是主题
<resources>
<style name="Theme.DesignDemo" parent="Base.Theme.DesignDemo"></style>
<style name="Theme.DesignDemo2" parent="Base.Theme.DesignDemo"></style>
<style name="Base.Theme.DesignDemo" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:statusBarColor">@color/colorPrimary</item>
</style>
<style name="Theme.DesignDemo.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="Theme.DesignDemo.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>
和Styles.xml V-21
<resources>
<style name="Theme.DesignDemo" parent="Base.Theme.DesignDemo">
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:statusBarColor">@color/primary_dark</item>
</style>
</resources>
和colors.xml
<resources>
<color name="colorPrimary">#002868</color>
<color name="colorPrimaryDark">#002053</color>
<color name="colorPrimaryRed">#AF0505</color> <!--BF0A30-->
<color name="colorAccent">#b2dfdb</color>
<color name="colorWhite">#FFF</color>
</resources>
例如,如果您查看WhatsApp,即使打开它也需要几秒钟,但使用它们设置的颜色而不是默认的灰色。
答案 0 :(得分:0)
你的风格看起来很完美。但是,你可能错过了一件事。你可能做的只是简单地将主题分配给你想要设置样式的活动,也许在这种情况下你只有一个,因为你正在玩。
这很好。但是,仅在您的活动上设置样式意味着当应用程序启动时,它只使用基于Android API版本和系统样式的一些默认样式。
你显然想要设计风格,以便应用中的外观保持一致,对吧?
为此,您只需打开AndroidManifest.xml
文件并找到Application
节点即可。在这里,您需要添加一个主题属性,与您的Activity类似。这看起来像是:
<application android:theme="@style/Theme.DesignDemo" android:label="@string/appname" android:icon="@drawable/ic_icon_launcher">
这会将样式应用程序设置为宽,如果您希望在不同的活动中使用不同的样式,则可以按活动覆盖它。