diff --git a/src/main/java/net/micode/notes/ui/NotesListActivity.java b/src/main/java/net/micode/notes/ui/NotesListActivity.java index 74b08ea..c033aeb 100644 --- a/src/main/java/net/micode/notes/ui/NotesListActivity.java +++ b/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -316,6 +316,52 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.note_list); + + // 上移底部系统栏,解决写便签按钮与底部系统栏之间的多余间距 + View decorView = getWindow().getDecorView(); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) { + // Android 11+ 使用新的WindowInsetsController API + android.view.WindowInsetsController insetsController = decorView.getWindowInsetsController(); + if (insetsController != null) { + // 隐藏底部导航栏 + insetsController.hide(android.view.WindowInsets.Type.navigationBars()); + // 设置系统栏行为,允许滑动显示 + insetsController.setSystemBarsBehavior( + android.view.WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE); + } + } else if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { + // Android 4.1-10 使用旧的系统UI可见性API + int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; + decorView.setSystemUiVisibility(uiOptions); + } + + // 添加系统UI可见性变化监听器,确保系统栏保持上移状态 + decorView.setOnSystemUiVisibilityChangeListener( + new View.OnSystemUiVisibilityChangeListener() { + @Override + public void onSystemUiVisibilityChange(int visibility) { + // 当系统UI可见性变化时,重新设置系统UI可见性 + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) { + // Android 11+ 使用新API + android.view.WindowInsetsController insetsController = decorView.getWindowInsetsController(); + if (insetsController != null) { + insetsController.hide(android.view.WindowInsets.Type.navigationBars()); + } + } else if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { + // Android 4.1-10 使用旧API + if ((visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) { + int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; + decorView.setSystemUiVisibility(uiOptions); + } + } + } + } + ); + initResources(); /** diff --git a/src/main/res/layout/note_list.xml b/src/main/res/layout/note_list.xml index 21eb34b..6ceb130 100644 --- a/src/main/res/layout/note_list.xml +++ b/src/main/res/layout/note_list.xml @@ -56,5 +56,5 @@ android:layout_height="wrap_content" android:focusable="false" android:layout_gravity="bottom" - android:layout_marginBottom="16dp" /> + android:layout_marginBottom="0dp" />