【发布时间】: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_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:id="@+id/activity_player_layout"
>
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:elevation="4dp"
android:layout_height="?attr/actionBarSize"
/>
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/exoplayer_video"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
app:bar_height="4dp"
app:controller_layout_id="@layout/custom_controller"
app:player_layout_id="@layout/exo_simple_player_view"
>
</com.google.android.exoplayer2.ui.PlayerView>
</RelativeLayout>
【问题讨论】: