今天,是萌新更新android的第三次
在慕课上看到一个视频,说是可以改变statusbar的颜色,只是在color.xml里面新添加了一个新颜色,然后在style里引用即可。然而,我发现我的statusbar,在我运行完项目之后,依然是模拟器本身的黑色,雷打不动,[吐血]
折腾了一下午,发现了UI flag,好像还不错,先试了一下,想达到图片可以铺满整个屏幕的效果,连Statusbar,导航栏都覆盖过去,但是当你往上点的时候,statusbar跟导航栏又会出来,据说这叫沉浸式??
新建了一个空项目
main_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"//这个是让图片铺满屏幕
android:src="@drawable/init" />
</RelativeLayout>
由于MainActivity extends AppCompatActivity,所以当你想隐藏actionbar的时候切不可以使用getActionbar(),要使用getSupportActionbar(),就这个样子:(当然免不了要import一些包)
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
当我的activity是继承Acitivity时,代码是这样子的
ActionBar actionbar = getActionBar();
actionbar.hide()
但是当我运行的时候,就闪退??摸不着头脑
或者是在style.xml中,改成这样子:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
然后我就跑偏了去搞了一下沉浸式:
MainActivity是这样子的:
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
public class MainActivity extends AppCompatActivity {
//
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus && Build.VERSION.SDK_INT >= 19) {
View decorView = getWindow().getDecorView();//Decorview是整个Window界面的最顶层View
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
}
运行的结果:
当你下拉顶部
感觉太棒啦!!
得好好深入去了解!
重写的onWindowFocusChanged()代码来源:https://blog.csdn.net/guolin_blog/article/details/51763825
关于decorview,可以去看看这位博主的讲解https://www.cnblogs.com/yogin/p/4061050.html