android 沉浸式
程序员文章站
2022-04-21 17:49:34
...
在网上看了很多,根布局加什么fitsSystemWindows ,这种会导致布局上方有一处空白。
自己在项目中处理的,也就是个自定义导航,感觉这样灵活性会高一些。Android设置导航栏的颜色的,有些颜色会有问题。
在项目的需要沉浸式的activity setContentView 前加入
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
}
在布局中最上面加入一个view
<View
android:id="@+id/statusBar"
android:layout_width="match_parent"
android:layout_height="1dp"
/>
然后获取状态栏高度,将高度设置给view
/**
* 获取状态栏高度
* @param context
* @return
*/
public int getStatusBarHeight(Context context) {
Resources resources = context.getResources();
int resourceId = resources.getIdentifier("status_bar_height", "dimen", "android");
int height = resources.getDimensionPixelSize(resourceId);
return height;
}
然后操作设置view的BackgroundResource,颜色自定义
上一篇: iOS应用崩溃日志揭秘2
下一篇: android沉浸式状态理解