diff --git a/src/Notes-master/src/net/micode/notes/MainActivity.java b/src/Notes-master/src/net/micode/notes/MainActivity.java new file mode 100644 index 0000000..8e81052 --- /dev/null +++ b/src/Notes-master/src/net/micode/notes/MainActivity.java @@ -0,0 +1,48 @@ +package net.micode.notes; // 指定代码所属的包名 + +import android.os.Bundle; // 导入Bundle类,用于传递和保存状态数据 + +import androidx.activity.EdgeToEdge; // 导入边缘到边缘功能类,支持沉浸式布局 +import androidx.appcompat.app.AppCompatActivity; // 导入AppCompat活动基类,提供兼容性支持 +import androidx.core.graphics.Insets; // 导入Insets类,用于表示窗口插入区域的尺寸 +import androidx.core.view.ViewCompat; // 导入视图兼容工具类,提供跨版本视图功能 +import androidx.core.view.WindowInsetsCompat; // 导入窗口插入兼容类,处理窗口插入事件 + +/** + * 应用主活动类 + * 负责应用的主界面展示和初始化工作 + */ +public class MainActivity extends AppCompatActivity { + + /** + * 活动创建时调用的方法 + * 进行布局初始化和窗口插入事件处理 + * @param savedInstanceState 保存的活动状态,如果活动是重新创建的 + */ + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); // 调用父类的onCreate方法 + + // 启用边缘到边缘功能,允许内容延伸到系统状态栏和导航栏区域 + EdgeToEdge.enable(this); + + // 设置活动的内容视图为activity_main布局 + setContentView(R.layout.activity_main); + + // 为id为main的视图设置窗口插入事件监听器 + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { + // 获取系统状态栏、导航栏等系统栏的插入区域尺寸 + Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + + // 设置视图的内边距,确保内容不会被系统栏遮挡 + // 左内边距 = 系统栏左侧插入区域宽度 + // 上内边距 = 系统栏顶部插入区域高度(通常是状态栏高度) + // 右内边距 = 系统栏右侧插入区域宽度 + // 下内边距 = 系统栏底部插入区域高度(通常是导航栏高度) + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); + + // 返回处理后的窗口插入事件,允许其他监听器继续处理 + return insets; + }); + } +} \ No newline at end of file