[优化] 增加了一个页面切换过渡动画的开关 #557

This commit is contained in:
HapeLee
2026-01-17 16:49:36 +08:00
parent d05900b160
commit 1638966ba4
8 changed files with 42 additions and 14 deletions
@@ -46,6 +46,7 @@ object PreferKey {
const val enableReview = "enableReview"
const val showRss = "showRss"
const val showStatusBar = "showStatusBar"
const val swipeAnimation = "swipeAnimation"
const val bookshelfLayout = "bookshelfLayout"
const val bookshelfLayoutModePortrait = "bookshelfLayoutPortrait"
const val bookshelfLayoutModeLandscape = "bookshelf_layout_landscape"
@@ -53,7 +53,9 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
var themeMode = appCtx.getPrefString(PreferKey.themeMode, "0")
var AppTheme = appCtx.getPrefString(PreferKey.appTheme, "0")
var containerOpacity = appCtx.getPrefInt(PreferKey.containerOpacity, 100)
var swipeAnimation = appCtx.getPrefBoolean(PreferKey.swipeAnimation, true)
var useDefaultCover = appCtx.getPrefBoolean(PreferKey.useDefaultCover, false)
var optimizeRender = CanvasRecorderFactory.isSupport
&& appCtx.getPrefBoolean(PreferKey.optimizeRender, false)
@@ -998,4 +1000,9 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
return str * 60 * 1000L
}
var containerOpacity: Int
get() = appCtx.getPrefInt(PreferKey.containerOpacity, 100)
set(value) {
appCtx.putPrefInt(PreferKey.containerOpacity, value)
}
}
@@ -181,7 +181,7 @@ class ThemeConfigFragment : PreferenceFragmentCompat(),
}
PreferKey.paletteStyle, PreferKey.pureBlack, PreferKey.enableBlur -> {
PreferKey.paletteStyle, PreferKey.pureBlack, PreferKey.enableBlur, PreferKey.swipeAnimation -> {
ThemeSyncer.syncAll()
Handler(Looper.getMainLooper()).postDelayed({
recreateActivities()
@@ -248,25 +248,35 @@ class ThemeConfigFragment : PreferenceFragmentCompat(),
.setValue(10)
.setCustomButton((R.string.btn_default_s)) {
putPrefInt(PreferKey.fontScale, 0)
recreateActivities()
Handler(Looper.getMainLooper()).postDelayed({
recreateActivities()
}, 100)
}
.show {
putPrefInt(PreferKey.fontScale, it)
recreateActivities()
Handler(Looper.getMainLooper()).postDelayed({
recreateActivities()
}, 100)
}
PreferKey.containerOpacity -> NumberPickerDialog(requireContext())
.setTitle(getString(R.string.container_opacity))
.setMaxValue(100)
.setMinValue(0)
.setValue(100)
.setValue(AppConfig.containerOpacity)
.setCustomButton((R.string.btn_default_s)) {
putPrefInt(PreferKey.containerOpacity, 100)
ThemeSyncer.syncContainerOpacity()
AppConfig.containerOpacity = 100
Handler(Looper.getMainLooper()).postDelayed({
ThemeSyncer.syncContainerOpacity()
upPreferenceSummary(PreferKey.containerOpacity)
}, 100)
}
.show {
putPrefInt(PreferKey.containerOpacity, it)
ThemeSyncer.syncContainerOpacity()
AppConfig.containerOpacity = it
Handler(Looper.getMainLooper()).postDelayed({
ThemeSyncer.syncContainerOpacity()
upPreferenceSummary(PreferKey.containerOpacity)
}, 100)
}
PreferKey.bgImage -> selectBgAction(false)
@@ -96,6 +96,7 @@ open class MainActivity : VMBaseActivity<ActivityMainBinding, MainViewModel>(),
private val fragmentMap = hashMapOf<Int, Fragment>()
private var bottomMenuCount = 4
private val realPositions = arrayOf(idBookshelf, idExplore, idRss, idMy)
private val swipeAnimation = AppConfig.swipeAnimation
private val adapter by lazy {
TabFragmentPageAdapter(this)
}
@@ -181,7 +182,7 @@ open class MainActivity : VMBaseActivity<ActivityMainBinding, MainViewModel>(),
R.id.menu_my_config -> realPositions.indexOf(idMy)
else -> 0
}
binding.viewPagerMain.setCurrentItem(index, true)
binding.viewPagerMain.setCurrentItem(index, swipeAnimation)
return true
}