5 android statusbar material-design
我想以编程方式更改预棒棒糖设备上的状态栏颜色。我很清楚材料设计colouPrimaryDark不能在棒棒糖之前工作,因为状态栏颜色是OS本身的关注点,棒棒糖之前的设备不会提供这种功能。所以我想通过java文件以编程方式进行操作。那可能吗?
目前,我正在使用此材料设计代码。
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primaryColor</item>
<item name="colorPrimaryDark">@color/primaryColor</item>
<item name="colorAccent">@color/primaryColor</item>
</style>
Run Code Online (Sandbox Code Playgroud)
由于这将无法使用低于21的API。因此,我想通过Java来实现。
实际上,我们可以在 + 上使用它KitKat。
检查此链接: http://developer.android.com/reference/android/R.attr.html#windowTranslucentStatus
- 已添加
API level 19,这意味着有一种方法可以做到这一点。检查我的博客有关使用它的信息SystemTintBar: https://linx64.ir/blog/2016/02/05/translucent-statusbar-on-kitkat/- 这是另一种方法(不使用
CoordinatorLayout): Translucent StatusBar on kitkat with FrameLayout above the Toolbar and using CoordinatorLayout
只需将其添加到布局的顶部:
<FrameLayout
android:id="@+id/statusbar"
android:layout_width="match_parent"
android:layout_height="25dp"
android:background="@color/colorPrimaryDark" />
Run Code Online (Sandbox Code Playgroud)
并使用这个:
if(Build.VERSION.SDK_INT == 19) {
FrameLayout statusbar = (FrameLayout) findViewById(R.id.statusbar);
statusbar.setVisibility(View.GONE);
}
Run Code Online (Sandbox Code Playgroud)
它应该适用于Kitkat,并且正如我所说,这也仅适用于 + Kitkat。