我在一个活动我使用工具栏更改颜色Palette,但使用5.0的设备ActionBarActivity的status bar颜色是我的颜色colorPrimaryDark我的活动主题,所以我有2个非常不同的颜色和它看起来并不好.
我意识到在5.0你可以使用,Window.setStatusBarColor()但ActionBarActivity没有这个.
所以我的问题是在5.0中如何更改状态栏颜色ActionBarActivity?
我正在开发一个简单的应用来测试材料设计.我正在使用com.android.support:appcompat-v7:21.0.0,我的活动看起来像:
public class MyActivity extends ActionBarActivity {
...
}
Run Code Online (Sandbox Code Playgroud)
布局定义为:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MyActivity">
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="128dp"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimaryDark"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
现在我按照材料指南定义了我的主题:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/colorPrimary500</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark700</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我想在Android 5之前更改状态栏颜色并将其设置为colorPrimaryDark但我无法找到方法.我试过用:
getWindow().setStatusBarColor(..)
Run Code Online (Sandbox Code Playgroud)
但是,从第21级开始可以使用setStatusBar颜色.为什么如果我colorPrimaryDark在我的主题中定义并使用appcompact,状态栏不会改变颜色?有人可以帮忙吗?