fix: 解决 TitleSettingsPage 标题间距与字号加减按钮点击不刷新问题

This commit is contained in:
fansan
2026-06-13 08:48:16 +08:00
parent 9be789f310
commit 9843bed95f
@@ -362,6 +362,12 @@ internal fun TitleSettingsPage(
) {
var titleMode by remember { mutableIntStateOf(ReadBookConfig.titleMode) }
var titleBold by remember { mutableIntStateOf(ReadBookConfig.titleBold) }
var titleSegScaling by remember { mutableFloatStateOf(ReadBookConfig.titleSegScaling) }
var titleLineSpacingExtra by remember { mutableIntStateOf(ReadBookConfig.titleLineSpacingExtra) }
var titleLineSpacingSub by remember { mutableIntStateOf(ReadBookConfig.titleLineSpacingSub) }
var titleSize by remember { mutableIntStateOf(ReadBookConfig.titleSize) }
var titleTopSpacing by remember { mutableIntStateOf(ReadBookConfig.titleTopSpacing) }
var titleBottomSpacing by remember { mutableIntStateOf(ReadBookConfig.titleBottomSpacing) }
var showColorPicker by remember { mutableStateOf(false) }
var colorPickerId by remember { mutableIntStateOf(0) }
@@ -429,50 +435,56 @@ internal fun TitleSettingsPage(
// Title spacing sliders
TinySliderSettingItem(
title = stringResource(R.string.subtitle_scale),
value = ReadBookConfig.titleSegScaling * 10,
value = titleSegScaling * 10,
valueRange = 0f..100f,
onValueChange = { value ->
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleSegScaling(value / 10f)))
titleSegScaling = value / 10f
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleSegScaling(titleSegScaling)))
},
)
TinySliderSettingItem(
title = stringResource(R.string.heading_spacing),
value = ReadBookConfig.titleLineSpacingExtra.toFloat(),
value = titleLineSpacingExtra.toFloat(),
valueRange = 0f..100f,
onValueChange = { value ->
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleLineSpacingExtra(value.toInt())))
titleLineSpacingExtra = value.toInt()
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleLineSpacingExtra(titleLineSpacingExtra)))
},
)
TinySliderSettingItem(
title = stringResource(R.string.subtitle_margin),
value = ReadBookConfig.titleLineSpacingSub.toFloat(),
value = titleLineSpacingSub.toFloat(),
valueRange = 0f..100f,
onValueChange = { value ->
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleLineSpacingSub(value.toInt())))
titleLineSpacingSub = value.toInt()
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleLineSpacingSub(titleLineSpacingSub)))
},
)
TinySliderSettingItem(
title = stringResource(R.string.title_font_size),
value = ReadBookConfig.titleSize.toFloat(),
value = titleSize.toFloat(),
valueRange = 0f..100f,
onValueChange = { value ->
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleSize(value.toInt())))
titleSize = value.toInt()
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleSize(titleSize)))
},
)
TinySliderSettingItem(
title = stringResource(R.string.title_margin_top),
value = ReadBookConfig.titleTopSpacing.toFloat(),
value = titleTopSpacing.toFloat(),
valueRange = 0f..100f,
onValueChange = { value ->
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleTopSpacing(value.toInt())))
titleTopSpacing = value.toInt()
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleTopSpacing(titleTopSpacing)))
},
)
TinySliderSettingItem(
title = stringResource(R.string.title_margin_bottom),
value = ReadBookConfig.titleBottomSpacing.toFloat(),
value = titleBottomSpacing.toFloat(),
valueRange = 0f..100f,
onValueChange = { value ->
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleBottomSpacing(value.toInt())))
titleBottomSpacing = value.toInt()
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleBottomSpacing(titleBottomSpacing)))
},
)