【问题标题】:hide the status bar correctly in android在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_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>

【问题讨论】:

    标签: android statusbar


    【解决方案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);
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 2016-05-10
      • 1970-01-01
      • 2011-07-22
      • 2021-09-25
      • 2015-01-01
      • 1970-01-01
      相关资源
      最近更新 更多