فهرست منبع

修复共享动画的闪烁问题

HapeLee 1 سال پیش
والد
کامیت
6f5545ef08

+ 3 - 0
app/src/main/java/io/legato/kazusa/ui/book/info/BookInfoActivity.kt

@@ -32,6 +32,7 @@ import com.google.android.material.color.DynamicColors
 import com.google.android.material.color.DynamicColorsOptions
 import com.google.android.material.color.DynamicColorsOptions
 import com.google.android.material.color.MaterialColors
 import com.google.android.material.color.MaterialColors
 import com.google.android.material.transition.platform.MaterialContainerTransform
 import com.google.android.material.transition.platform.MaterialContainerTransform
+import com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback
 import io.legato.kazusa.R
 import io.legato.kazusa.R
 import io.legato.kazusa.base.VMBaseActivity
 import io.legato.kazusa.base.VMBaseActivity
 import io.legato.kazusa.constant.BookType
 import io.legato.kazusa.constant.BookType
@@ -171,6 +172,8 @@ class BookInfoActivity :
     @SuppressLint("PrivateResource")
     @SuppressLint("PrivateResource")
     override fun onCreate(savedInstanceState: Bundle?) {
     override fun onCreate(savedInstanceState: Bundle?) {
         postponeEnterTransition()
         postponeEnterTransition()
+        setEnterSharedElementCallback(MaterialContainerTransformSharedElementCallback())
+        setExitSharedElementCallback(MaterialContainerTransformSharedElementCallback())
         val transform = MaterialContainerTransform().apply {
         val transform = MaterialContainerTransform().apply {
             addTarget(binding.cdCov)
             addTarget(binding.cdCov)
             scrimColor = Color.TRANSPARENT
             scrimColor = Color.TRANSPARENT

+ 2 - 2
app/src/main/java/io/legato/kazusa/ui/book/manga/ReadMangaActivity.kt

@@ -445,7 +445,7 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
             if (loadingViewVisible) {
             if (loadingViewVisible) {
                 binding.llLoading.isGone = true
                 binding.llLoading.isGone = true
                 binding.llRetry.isVisible = true
                 binding.llRetry.isVisible = true
-                binding.tvMsg.text = msg
+                binding.tvMsg2.setMessage(msg)
             } else {
             } else {
                 loadMoreView.error(null, "加载失败,点击重试")
                 loadMoreView.error(null, "加载失败,点击重试")
             }
             }
@@ -786,7 +786,7 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
             if (paddingDp == 0) {
             if (paddingDp == 0) {
                 recyclerView.setPadding(0, 0, 0, 0)
                 recyclerView.setPadding(0, 0, 0, 0)
             } else if (width > 0) {
             } else if (width > 0) {
-                val paddingPx = (width * paddingDp / 100).toInt()
+                val paddingPx = (width * paddingDp / 100)
                 recyclerView.setPadding(paddingPx, 0, paddingPx, 0)
                 recyclerView.setPadding(paddingPx, 0, paddingPx, 0)
             }
             }
         }
         }

+ 1 - 2
app/src/main/java/io/legato/kazusa/ui/book/read/ReadBookActivity.kt

@@ -18,13 +18,11 @@ import androidx.activity.addCallback
 import androidx.activity.result.contract.ActivityResultContracts
 import androidx.activity.result.contract.ActivityResultContracts
 import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.widget.PopupMenu
 import androidx.appcompat.widget.PopupMenu
-import androidx.core.view.doOnPreDraw
 import androidx.core.view.get
 import androidx.core.view.get
 import androidx.core.view.size
 import androidx.core.view.size
 import androidx.lifecycle.lifecycleScope
 import androidx.lifecycle.lifecycleScope
 import com.google.android.material.transition.platform.MaterialContainerTransform
 import com.google.android.material.transition.platform.MaterialContainerTransform
 import com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback
 import com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback
-import com.google.android.material.transition.platform.MaterialSharedAxis
 import com.jaredrummler.android.colorpicker.ColorPickerDialogListener
 import com.jaredrummler.android.colorpicker.ColorPickerDialogListener
 import io.legato.kazusa.BuildConfig
 import io.legato.kazusa.BuildConfig
 import io.legato.kazusa.R
 import io.legato.kazusa.R
@@ -266,6 +264,7 @@ class ReadBookActivity : BaseReadBookActivity(),
 
 
         if (AppConfig.sharedElementEnterTransitionEnable) {
         if (AppConfig.sharedElementEnterTransitionEnable) {
             setEnterSharedElementCallback(MaterialContainerTransformSharedElementCallback())
             setEnterSharedElementCallback(MaterialContainerTransformSharedElementCallback())
+            setExitSharedElementCallback(MaterialContainerTransformSharedElementCallback())
             val transform = MaterialContainerTransform().apply {
             val transform = MaterialContainerTransform().apply {
                 addTarget(binding.root)
                 addTarget(binding.root)
                 scrimColor = Color.TRANSPARENT
                 scrimColor = Color.TRANSPARENT

+ 2 - 5
app/src/main/java/io/legato/kazusa/ui/main/MainActivity.kt

@@ -14,7 +14,6 @@ import android.widget.ImageView
 import androidx.activity.addCallback
 import androidx.activity.addCallback
 import androidx.activity.viewModels
 import androidx.activity.viewModels
 import androidx.core.view.get
 import androidx.core.view.get
-import androidx.core.view.isVisible
 import androidx.core.view.postDelayed
 import androidx.core.view.postDelayed
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.FragmentManager
 import androidx.fragment.app.FragmentManager
@@ -24,6 +23,7 @@ import androidx.viewpager.widget.ViewPager
 import com.google.android.material.bottomnavigation.BottomNavigationView
 import com.google.android.material.bottomnavigation.BottomNavigationView
 import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
 import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
 import com.google.android.material.navigation.NavigationBarView
 import com.google.android.material.navigation.NavigationBarView
+import com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback
 import io.legato.kazusa.BuildConfig
 import io.legato.kazusa.BuildConfig
 import io.legato.kazusa.R
 import io.legato.kazusa.R
 import io.legato.kazusa.base.VMBaseActivity
 import io.legato.kazusa.base.VMBaseActivity
@@ -40,7 +40,6 @@ import io.legato.kazusa.help.storage.Backup
 import io.legato.kazusa.lib.dialogs.alert
 import io.legato.kazusa.lib.dialogs.alert
 import io.legato.kazusa.service.BaseReadAloudService
 import io.legato.kazusa.service.BaseReadAloudService
 import io.legato.kazusa.ui.about.CrashLogsDialog
 import io.legato.kazusa.ui.about.CrashLogsDialog
-import io.legato.kazusa.ui.book.read.ReadBookActivity
 import io.legato.kazusa.ui.book.search.SearchActivity
 import io.legato.kazusa.ui.book.search.SearchActivity
 import io.legato.kazusa.ui.main.bookshelf.BaseBookshelfFragment
 import io.legato.kazusa.ui.main.bookshelf.BaseBookshelfFragment
 import io.legato.kazusa.ui.main.bookshelf.books.BookshelfFragment1
 import io.legato.kazusa.ui.main.bookshelf.books.BookshelfFragment1
@@ -49,10 +48,8 @@ import io.legato.kazusa.ui.main.bookshelf.books.BookshelfFragment3
 import io.legato.kazusa.ui.main.explore.ExploreFragment
 import io.legato.kazusa.ui.main.explore.ExploreFragment
 import io.legato.kazusa.ui.main.my.MyFragment
 import io.legato.kazusa.ui.main.my.MyFragment
 import io.legato.kazusa.ui.main.rss.RssFragment
 import io.legato.kazusa.ui.main.rss.RssFragment
-import io.legato.kazusa.ui.welcome.WelcomeActivity
 import io.legato.kazusa.ui.widget.dialog.TextDialog
 import io.legato.kazusa.ui.widget.dialog.TextDialog
 import io.legato.kazusa.utils.dpToPx
 import io.legato.kazusa.utils.dpToPx
-import io.legato.kazusa.utils.getPrefBoolean
 import io.legato.kazusa.utils.gone
 import io.legato.kazusa.utils.gone
 import io.legato.kazusa.utils.hideSoftInput
 import io.legato.kazusa.utils.hideSoftInput
 import io.legato.kazusa.utils.observeEvent
 import io.legato.kazusa.utils.observeEvent
@@ -108,7 +105,7 @@ class MainActivity : VMBaseActivity<ActivityMainBinding, MainViewModel>(),
 
 
     override fun onCreate(savedInstanceState: Bundle?) {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         super.onCreate(savedInstanceState)
-
+        setExitSharedElementCallback(MaterialContainerTransformSharedElementCallback())
         if (savedInstanceState != null) {
         if (savedInstanceState != null) {
             pagePosition = savedInstanceState.getInt("currentPagePosition", 0)
             pagePosition = savedInstanceState.getInt("currentPagePosition", 0)
         }
         }