在android中正确隐藏状态栏
Posted
技术标签:
【中文标题】在android中正确隐藏状态栏【英文标题】:hide the status bar correctly in android 【发布时间】:2021-10-11 20:15:06 【问题描述】:我正在尝试显示和隐藏导航和状态栏,但问题是根本没有显示状态。我试图将这个getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
包括在内以显示和getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
以隐藏但它在隐藏和显示时上下移动时扰乱了整个视图。这是实现
if (!actionbar.isShown())
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
// Show status bar
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getSupportActionBar().show();
else
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 // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE);
// Hide status bar
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getSupportActionBar().hide();
这里是xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:animateLayoutChanges="true"
android:id="@+id/activity_player_layout"
>
<androidx.appcompat.widget.Toolbar
android:layout_
android:elevation="4dp"
android:layout_
/>
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/exoplayer_video"
android:layout_
android:layout_
android:background="@color/black"
app:bar_
app:controller_layout_id="@layout/custom_controller"
app:player_layout_id="@layout/exo_simple_player_view"
>
</com.google.android.exoplayer2.ui.PlayerView>
</RelativeLayout>
【问题讨论】:
【参考方案1】:试试这种方式,因为这适用于我的项目
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
【讨论】:
以上是关于在android中正确隐藏状态栏的主要内容,如果未能解决你的问题,请参考以下文章