gpt4 book ai didi

android - 在android中动态设置状态栏颜色

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:02 25 4
gpt4 key购买 nike

如何为应用程序动态设置状态栏颜色,我在(水平)滑动状态栏颜色时使用 View 寻呼机,标题栏和按钮应该改变颜色。根据我的代码标题和按钮颜色完美改变,但问题是状态栏颜色从数组列表中获取下一个颜色。如何解决这个问题任何人都可以帮助我。这是我的代码

 private int[] colors = new int[]{0xffffd200, 0xff37beb7, 0xff00ccff, 0xff8585c1, 0xfff2a03c, 0xff2a80b9, 0xfff15972,
0xffe9776c, 0xff9dcc96,0xff76c069};

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = ((Activity) context).getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

int coloring = position % colors.length;
int new_color = colors[coloring];
window.setStatusBarColor(new_color);
title_bar.setBackgroundColor(new_color);
set_share.setBackgroundColor(new_color);

}
else{

int color = position % colors.length;
itemView.setBackgroundColor(colors[color]);
title_bar.setBackgroundColor(colors[color]);
set_share.setBackgroundColor(colors[color]);
}

最佳答案

要更改状态栏颜色,请使用 setStatusBarColor(int color)。根据 javadoc,我们还需要在窗口上设置一些标志。

工作代码 fragment :

Window window = activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(activity.getResources().getColor(R.color.example_color));

这取自以下引用资料: How to change status bar color to match app in Lollipop? [Android]

关于android - 在android中动态设置状态栏颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34042232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com