Edge to edge optimization

This commit is contained in:
Super12138 2024-06-09 16:25:44 +08:00
parent dc4ffe0941
commit 17963e9f40
4 changed files with 24 additions and 15 deletions

View file

@ -1,13 +1,16 @@
package cn.super12138.todo.views package cn.super12138.todo.views
import android.graphics.Color
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.WindowManager import android.view.WindowManager
import androidx.activity.SystemBarStyle
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate
import androidx.viewbinding.ViewBinding import androidx.viewbinding.ViewBinding
import cn.super12138.todo.constant.GlobalValues import cn.super12138.todo.constant.GlobalValues
import com.google.android.material.internal.EdgeToEdgeUtils
abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() { abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
lateinit var binding: T lateinit var binding: T
@ -15,7 +18,7 @@ abstract class BaseActivity<T : ViewBinding> : AppCompatActivity() {
/*if (GlobalValues.springFestivalTheme) { /*if (GlobalValues.springFestivalTheme) {
setTheme(R.style.Theme_SpringFestival) setTheme(R.style.Theme_SpringFestival)
}*/ }*/
enableEdgeToEdge() enableEdgeToEdge(navigationBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT))
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
binding = getViewBinding() binding = getViewBinding()
setContentView(binding.root) setContentView(binding.root)

View file

@ -18,16 +18,6 @@ class CrashActivity : BaseActivity<ActivityCrashBinding>() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
ViewCompat.setOnApplyWindowInsetsListener(binding.exitApp) { view, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
view.updateLayoutParams<ViewGroup.MarginLayoutParams> {
leftMargin = if (insets.left == 0) 16 else insets.left
bottomMargin = if (insets.bottom == 0) 48 else insets.bottom + 32
rightMargin = if (insets.right == 0) 48 else insets.right + 32
}
WindowInsetsCompat.CONSUMED
}
val crashLogs = intent.getStringExtra("crash_logs") val crashLogs = intent.getStringExtra("crash_logs")
val deviceBrand = Build.BRAND val deviceBrand = Build.BRAND

View file

@ -1,9 +1,13 @@
package cn.super12138.todo.views.todo package cn.super12138.todo.views.todo
import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updateLayoutParams
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
@ -16,6 +20,7 @@ import cn.super12138.todo.databinding.FragmentTodoBinding
import cn.super12138.todo.logic.Repository import cn.super12138.todo.logic.Repository
import cn.super12138.todo.utils.VibrationUtils import cn.super12138.todo.utils.VibrationUtils
import cn.super12138.todo.views.bottomsheet.ToDoBottomSheet import cn.super12138.todo.views.bottomsheet.ToDoBottomSheet
import cn.super12138.todo.views.crash.CrashActivity
import cn.super12138.todo.views.progress.ProgressFragmentViewModel import cn.super12138.todo.views.progress.ProgressFragmentViewModel
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -38,16 +43,15 @@ class ToDoFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
/*ViewCompat.setOnApplyWindowInsetsListener(binding.addItem) { view, windowInsets -> ViewCompat.setOnApplyWindowInsetsListener(binding.addItem) { v, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()) val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
view.updateLayoutParams<ViewGroup.MarginLayoutParams> { v.updateLayoutParams<ViewGroup.MarginLayoutParams> {
leftMargin = if (insets.left == 0) 16 else insets.left leftMargin = if (insets.left == 0) 16 else insets.left
bottomMargin = if (insets.bottom == 0) 48 else insets.bottom + 32 bottomMargin = if (insets.bottom == 0) 48 else insets.bottom + 32
rightMargin = if (insets.right == 0) 48 else insets.right + 32 rightMargin = if (insets.right == 0) 48 else insets.right + 32
} }
WindowInsetsCompat.CONSUMED WindowInsetsCompat.CONSUMED
}*/ }
val todoList = todoViewModel.todoList val todoList = todoViewModel.todoList
val layoutManager = LinearLayoutManager(ToDoApp.context) val layoutManager = LinearLayoutManager(ToDoApp.context)
@ -69,6 +73,8 @@ class ToDoFragment : Fragment() {
val toDoBottomSheet = ToDoBottomSheet() val toDoBottomSheet = ToDoBottomSheet()
toDoBottomSheet.show(parentFragmentManager, ToDoBottomSheet.TAG) toDoBottomSheet.show(parentFragmentManager, ToDoBottomSheet.TAG)
startActivity(Intent(ToDoApp.context, CrashActivity::class.java))
} }
binding.addItem.setOnLongClickListener { binding.addItem.setOnLongClickListener {

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.ToDo" parent="Base.Theme.ToDo">
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowLightStatusBar">?attr/isLightTheme</item>
<item name="android:enforceNavigationBarContrast">false</item>
</style>
</resources>