From 295bc74d2e7c20f44e5e84663a692ce300344944 Mon Sep 17 00:00:00 2001 From: MRD <1259303886@qq.com> Date: Fri, 13 Jun 2025 19:26:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BB=A3=E7=A0=81=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/micode/notes/MainActivity.java | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/MainActivity.java b/src/Notes-master/app/src/main/java/net/micode/notes/MainActivity.java index 6ba80f2..271c365 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/MainActivity.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/MainActivity.java @@ -1,3 +1,7 @@ +/* + * 应用主Activity + * 负责设置全屏沉浸效果,适配系统状态栏和导航栏 + */ package net.micode.notes; import android.os.Bundle; @@ -8,17 +12,38 @@ import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; +/** + * 应用主Activity + * 实现全屏沉浸效果,使应用内容能够延伸到系统状态栏和导航栏区域 + */ public class MainActivity extends AppCompatActivity { + /** + * Activity创建时调用的生命周期方法 + * 设置全屏沉浸效果并处理窗口Insets + * + * @param savedInstanceState 保存的实例状态,如果Activity是重新创建的 + */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + + // 启用全屏沉浸效果,允许内容延伸到系统状态栏和导航栏区域 EdgeToEdge.enable(this); + + // 设置Activity布局 setContentView(R.layout.activity_main); + + // 设置窗口Insets监听器,处理系统窗口边界 ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { + // 获取系统状态栏和导航栏的Insets(边距) Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + + // 将Insets应用到主视图的padding中,确保内容不会被系统UI遮挡 v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); + + // 返回处理后的Insets,供其他视图继续使用 return insets; }); } -} \ No newline at end of file +}