搞了几天的杂事,终于晚上可以研究研究项目了。今天坐车回来的时候打开前几天做的一小点的应用看了下,发现最上面有一块蓝色的背景,之前只是实现了应用的功能就没在意这些细节,今天才注意到这种问题。我想了想,明明我设置了隐藏标题栏的代码,为啥还有一块没去掉呢?像下面这图
那么问题来了,既然标题栏可以去掉,那么状态栏可以吗?答案是肯定可以的。
android4.4版本之后(包含4.4),android的window(窗口)提供了新的属性,即:
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS与WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION
两个属性分别表示将状态栏设置为透明,将导航栏设置为透明状态。使用方法如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initWindow();
}
private void initWindow(){//初始化,将状态栏和标题栏设为透明
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
状态栏虽然隐藏了,但是缺乏美感,这不是我们想要的结果,所以,只需要让其显示我们想要的颜色就可以了,在styles.xml文件的AppTheme下添加
<item name="android:fitsSystemWindows">true</item>
状态栏虽然出来了,但不是我们想要的颜色,那么需要我们声明:
private SystemBarTintManager tintManager;并在之前的initWindow()中加上以下代码:
tintManager = new SystemBarTintManager(this);
int statusColor=Color.parseColor("#FFFFFF");
tintManager.setStatusBarTintColor(getColor(statusColor));
tintManager.setStatusBarTintEnabled(true);
ok,这样问题就解决啦,看起来稍微好看点了。虽然看起来还是有点丑,后面我会找好看点的图标替换下那几个。
此文章仅作记录与参考,如有问题或者建议欢迎大家提出。
290



被折叠的 条评论
为什么被折叠?



