You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
git.text/src/java/net/micode/notes/MainActivity.java

69 lines
2.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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