You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Hello World应用如何恢复默认导航栏及调整窗口布局

Android Hello World应用导航栏相关问题解决

问题背景

在小米Redmi Note 5 Pro(API Level=28)上测试以下Hello World应用代码,运行后出现导航按键消失、右下角显示全屏图标的情况,需解决三个技术问题:

  1. 三个导航按键为何消失?
  2. 右下角的全屏图标是什么?
  3. 如何让应用窗口处于状态栏与导航栏之间?

应用代码

MainActivity.java

package com.example.test;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TextView txt = new TextView(this);
        txt.setLayoutParams(new LayoutParams(
                                LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT
                            ));
        txt.setText("Hello, world!");

        LinearLayout lay = new LinearLayout(this);
        lay.setLayoutParams(new LayoutParams(
                                LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT
                            ));
        lay.addView(txt);
        setContentView(lay);
    }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.test"
          versionCode="1"
          versionName="0.1">
    <uses-sdk android:minSdkVersion="21"/>
    <application android:label="test">
        <activity android:name=".MainActivity" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

运行效果

应用全屏显示,右下角有全屏图标


问题解答

1. 三个导航按键为何消失?

你的应用默认进入了全屏显示模式。在Android 8.0+(API 26+)设备上,当Activity的根布局设置为MATCH_PARENT占满屏幕时,系统(尤其是小米MIUI这类定制ROM)会自动隐藏导航栏,让应用占据整个屏幕空间。加上你的代码没有明确指定窗口的显示模式,系统默认触发了全屏适配逻辑,导致导航按键被隐藏。

2. 右下角的全屏图标是什么?

这是小米MIUI系统的显示模式切换快捷按钮,点击后可在「全屏隐藏导航栏」「显示导航栏的常规模式」「手势导航模式」之间切换,是MIUI为全屏应用提供的快速调整显示方式的入口。

3. 如何让应用窗口处于状态栏与导航栏之间?

提供三种可行方案:

  • 方案1:配置Activity主题
    在AndroidManifest.xml的Activity标签中添加系统默认非全屏主题,让系统自动保留状态栏和导航栏:

    <activity android:name=".MainActivity" android:exported="true"
              android:theme="@android:style/Theme.Material.Light">
    
  • 方案2:代码中禁用全屏模式
    在MainActivity的onCreate方法、super.onCreate(savedInstanceState);之后添加以下代码,清除全屏标记并恢复系统UI可见性:

    getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().getDecorView().setSystemUiVisibility(android.view.View.SYSTEM_UI_FLAG_VISIBLE);
    
  • 方案3:设置布局适配系统窗口
    给代码创建的根LinearLayout添加fitsSystemWindows属性,确保布局不会延伸到状态栏和导航栏下方:

    lay.setFitsSystemWindows(true);
    

内容的提问来源于stack exchange,提问作者dawnmenu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 07:17:05