Kitkat 中的 StatusBar 颜色显示很奇怪
Posted
技术标签:
【中文标题】Kitkat 中的 StatusBar 颜色显示很奇怪【英文标题】:StatusBar color display weird in Kitkat 【发布时间】:2017-04-10 11:49:17 【问题描述】:当我运行我的应用程序时,我的状态栏背景颜色显示很奇怪。我不知道为什么会这样。
您可以在顶部看到黑色阴影颜色显示,如 Gradient
类型。
既然这个设备有Kitkat
版本那么为什么它显示black
颜色。
这个错误还是什么有什么帮助吗?
layout_login.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_>
<ScrollView
android:layout_
android:layout_
android:fillViewport="true">
<RelativeLayout
android:layout_
android:layout_
android:background="@color/white1"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<ImageView
android:layout_
android:layout_
android:layout_marginTop="@dimen/normal_margin40"
android:id="@+id/imageView_logo"
android:src="@drawable/gargi_logo"
android:layout_centerHorizontal="true" />
<android.support.design.widget.TextInputLayout
android:id="@+id/textinputLayout_username"
android:layout_
android:layout_
android:layout_marginLeft="@dimen/normal_margin40"
android:layout_marginRight="@dimen/normal_margin40"
android:layout_marginTop="@dimen/normal_margin50"
android:layout_below="@+id/imageView_logo">
<android.support.design.widget.TextInputEditText
android:id="@+id/login_username_editText"
android:layout_
android:layout_
android:hint="@string/username"
android:singleLine="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:inputType="textPersonName" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/textinputLayout_password"
android:layout_
android:layout_
android:layout_marginLeft="@dimen/normal_margin40"
android:layout_marginRight="@dimen/normal_margin40"
android:layout_below="@+id/textinputLayout_username"
android:layout_marginTop="@dimen/normal_margin5">
<android.support.design.widget.TextInputEditText
android:id="@+id/login_password_editText"
android:layout_
android:layout_
android:hint="@string/password"
android:singleLine="true"
android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/login_button"
android:layout_
android:layout_
android:layout_below="@+id/textinputLayout_password"
android:theme="@style/AppTheme.Button"
android:text="@string/login"
android:textStyle="bold"
android:textColor="@color/white1"
android:gravity="center"
android:padding="2dp"
android:layout_marginTop="@dimen/normal_margin5"
android:layout_marginLeft="@dimen/normal_margin40"
android:layout_marginRight="@dimen/normal_margin40" />
<TextView
android:id="@+id/txt_forgetpassword"
android:layout_
android:layout_
android:layout_below="@+id/login_button"
android:text="@string/forget_password"
android:textColor="@color/colorPrimary"
android:gravity="center_horizontal"
android:layout_marginTop="@dimen/normal_margin10" />
<TextView
android:id="@+id/signUp_textView"
android:layout_
android:layout_
android:textColor="@color/colorPrimary"
android:text="@string/register_now"
android:gravity="center_horizontal"
android:layout_marginBottom="@dimen/normal_margin10"
android:layout_alignParentBottom="true" />
</RelativeLayout>
</ScrollView>
</android.support.design.widget.CoordinatorLayout>
styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:titleTextStyle">@style/myTheme.ActionBar.Text</item>
</style>
这是我的LoginActivity
所以我使用这个主题
AppTheme.NoActionBar
更新日期:
我创建了显示相同结果的新 Google Kitkat 设备
【问题讨论】:
它的状态栏颜色在 Kitkat 中不能改变 @Nithinlal 我知道,但为什么显示Gradient
输入颜色和Top
。
查看哪个手机,查看所有应用是否有相同颜色的状态栏。如果是,那是你的主题问题
这是 KitKat 的标准外观。
@Nithinlal 其他应用程序没有任何颜色,只有黑色。正如可以说statusBar
没有颜色那么为什么我的statusBar
有颜色??
【参考方案1】:
状态栏是操作系统拥有的系统窗口。在 5.0 之前的 Android 设备上,应用程序无权更改其颜色,因此 AppCompat 库不支持旧平台版本。 AppCompat 可以做的最好的事情是为应用程序中的 ActionBar 和其他常见 UI 小部件着色提供支持。
【讨论】:
我知道但为什么显示Gradient
输入颜色和Top
。【参考方案2】:
为了充分利用您的内容,您现在可以使用新的窗口样式和主题来请求半透明的系统 UI,包括状态栏和导航栏。为了确保导航栏按钮或状态栏信息的易读性,系统栏后面会显示细微的渐变。一个典型的用例是一个需要显示到墙纸的应用程序。 - 原因 ;)
【讨论】:
以上是关于Kitkat 中的 StatusBar 颜色显示很奇怪的主要内容,如果未能解决你的问题,请参考以下文章
我的 Material Design ActionBar 或 Lollipop 设备中的 StatusBar 上没有显示颜色,但在 Pre-Lollipop 设备的 ActionBar 中显示。为啥?
Android Kitkat 4.4版本状态栏下使用导航抽屉时状态栏颜色显示为白色不透明
利用 Android 4.4 KitKat 中的半透明状态栏