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 +}