package net.micode.notes;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
/**
* 应用主入口类,负责初始化应用界面和基础配置
*
* 核心职责:
*
* - 作为应用的启动Activity,处理应用初始化逻辑
* - 配置边缘到边缘(EdgeToEdge)显示模式
* - 设置窗口Insets监听器,适配系统状态栏和导航栏
*
*
* 设计意图:
*
* - 提供简洁的主界面入口,将具体功能委托给其他组件
* - 适配Android 11+的边缘到边缘显示特性
* - 确保界面在不同设备上的正确显示
*
*
* 继承关系:
*
* - 直接继承自{@link androidx.appcompat.app.AppCompatActivity},使用 AppCompat 库提供的兼容特性
*
*
* @author Micode Team
* @since 1.0.0
*/
public class MainActivity extends AppCompatActivity {
/**
* 初始化Activity,设置布局和窗口配置
*
* 业务逻辑:
*
* - 调用父类onCreate方法完成基础初始化
* - 启用边缘到边缘显示模式,充分利用屏幕空间
* - 设置Activity布局为activity_main
* - 注册窗口Insets监听器,动态调整视图内边距以适配系统UI
*
*
* 与其他类的交互:
*
* - 使用{@link EdgeToEdge}工具类启用边缘到边缘显示
* - 通过{@link ViewCompat}设置窗口Insets监听器
* - 与系统UI框架交互,获取系统状态栏和导航栏的尺寸
*
*
* @param savedInstanceState 保存的实例状态,用于恢复Activity状态
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_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;
});
}
}