Android layout Android-完全隐藏带有导航抽屉和应用程序栏的应用程序的状态和导航栏

Android layout Android-完全隐藏带有导航抽屉和应用程序栏的应用程序的状态和导航栏,android-layout,android-actionbar,android-statusbar,android-fullscreen,android-navigation-bar,Android Layout,Android Actionbar,Android Statusbar,Android Fullscreen,Android Navigation Bar,如何动态地完全隐藏状态和导航栏 该应用程序包含一个带有appbar/工具栏和FAB按钮的常规导航抽屉 切换到全屏时,导航和状态栏的内容将被卷走。屏幕上留下两个空条。我要把那些空酒吧藏起来 我创建了一个。左边是常规应用程序。当推动晶圆厂时,应用程序应全屏显示 我怎样才能把栅栏藏起来 问题:请写下最小演示项目中需要哪些更改 用第二个解决方案更新了: @Roaim提供的伟大解决方案非常有效。关键是将android:fitsystemwindows布局属性设置为false 如果您在显示和隐藏状态/导航

如何动态地完全隐藏状态和导航栏

该应用程序包含一个带有appbar/工具栏和FAB按钮的常规导航抽屉

切换到全屏时,导航和状态栏的内容将被卷走。屏幕上留下两个空条。我要把那些空酒吧藏起来

我创建了一个。左边是常规应用程序。当推动晶圆厂时,应用程序应全屏显示

我怎样才能把栅栏藏起来

问题:请写下最小演示项目中需要哪些更改

用第二个解决方案更新了

@Roaim提供的伟大解决方案非常有效。关键是将android:fitsystemwindows布局属性设置为false

如果您在显示和隐藏状态/导航栏方面仍有困难,此解决方案可能会对您有所帮助

完全隐藏栏:

public static void hideSystemUI() {
    if (getSupportActionBar() != null) {
        getSupportActionBar().hide();
    }
    getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_IMMERSIVE
                    | 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);
}
并显示所有栏:

public static void showSystemUI() {
    if (getSupportActionBar() != null) {
        getSupportActionBar().show();
    }
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
}
进入“值>样式”

现在应用内主题使用

使导航栏转录

<item name="android:windowTranslucentNavigation">true</item>
true
要删除它,请使其颜色与布局匹配

<item name="android:navigationBarColor">@color/white</item>
@color/white
或者试试这个

public void FullScreencall() {
    if(Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api
        View v = this.getWindow().getDecorView();
        v.setSystemUiVisibility(View.GONE);
    } else if(Build.VERSION.SDK_INT >= 19) {
        //for new api versions.
        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
        decorView.setSystemUiVisibility(uiOptions);
    }
}
public void FullScreencall(){
如果(Build.VERSION.SDK_INT>11&&Build.VERSION.SDK_INT<19){//lower api
视图v=this.getWindow().getDecorView();
v、 设置系统兼容性(View.GONE);
}else if(Build.VERSION.SDK_INT>=19){
//对于新的api版本。
View decorView=getWindow().getDecorView();
int uiOptions=View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.设置系统兼容性(uiOptions);
}
}
更新 问题在于您的布局文件。我刚刚设置了
android:fitsystemwindows=false
来解决这个问题。我对你的回购协议做了修改,我认为这解决了你的问题


您应遵守以下官方文件:


在Android 4.0及更低版本上隐藏状态栏

隐藏导航栏


请检查编辑并更新我的答案是否有效?我已经编辑了我的答案,请检查并更新我的答案是否有效?谢谢。1) windowTranslucentNavigation不会将其删除,但允许使用不同的背景色。2) navigationBarColor为字母提供了另一种颜色,而不是背景。下面的内容没有显示。3) 我试过你的方法,我想它会一直持续到Android 10。答案3我已经试过了,请看我的问题。唉,太好了!现在,我们可以说你已经找到了答案。干杯G R E A T!!!非常感谢你!我给了他奖金。祝贺
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // If the Android version is lower than Jellybean, use this call to hide
        // the status bar.
        if (Build.VERSION.SDK_INT < 16) {
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
        setContentView(R.layout.activity_main);
    }
    ...
}
    View decorView = getWindow().getDecorView();
    // Hide the status bar.
    int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
    decorView.setSystemUiVisibility(uiOptions);
    // Remember that you should never show the action bar if the
    // status bar is hidden, so hide that too if necessary.
    ActionBar actionBar = getActionBar();
    actionBar.hide();
    View decorView = getWindow().getDecorView();
    // Hide both the navigation bar and the status bar.
    // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
    // a general rule, you should design your app to hide the status bar whenever you
    // hide the navigation bar.
    int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                  | View.SYSTEM_UI_FLAG_FULLSCREEN;
    decorView.setSystemUiVisibility(uiOptions);