fix(settings): 对比度滑块标签不显示

This commit is contained in:
Super12138 2025-02-06 16:12:50 +08:00
parent 2fbccaf081
commit 0c566aa7e1
4 changed files with 26 additions and 30 deletions

View file

@ -15,8 +15,8 @@ enum class ContrastLevel(val value: Float) {
VeryLow -> R.string.contrast_very_low VeryLow -> R.string.contrast_very_low
Low -> R.string.contrast_low Low -> R.string.contrast_low
Default -> R.string.contrast_default Default -> R.string.contrast_default
Medium -> R.string.contrast_medium Medium -> R.string.contrast_high
High -> R.string.contrast_high High -> R.string.contrast_very_high
} }
return context.getString(resId) return context.getString(resId)
} }

View file

@ -1,17 +1,18 @@
package cn.super12138.todo.ui.pages.settings.components.contrast package cn.super12138.todo.ui.pages.settings.components.contrast
import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.sizeIn import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.wrapContentWidth import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.size
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Label import androidx.compose.material3.LocalTextStyle
import androidx.compose.material3.PlainTooltip import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Slider import androidx.compose.material3.Slider
import androidx.compose.material3.SliderDefaults
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
@ -40,7 +41,6 @@ fun ContrastPicker(
Constants.PREF_CONTRAST_LEVEL, Constants.PREF_CONTRAST_LEVEL,
Constants.PREF_CONTRAST_LEVEL_DEFAULT Constants.PREF_CONTRAST_LEVEL_DEFAULT
) )
val interactionSource = remember { MutableInteractionSource() }
Slider( Slider(
modifier = Modifier.semantics { modifier = Modifier.semantics {
@ -53,23 +53,19 @@ fun ContrastPicker(
}, },
valueRange = -1f..1f, valueRange = -1f..1f,
steps = 3, steps = 3,
interactionSource = interactionSource,
thumb = {
Label(
label = {
PlainTooltip(
modifier = Modifier
.sizeIn(45.dp, 25.dp)
.wrapContentWidth()
) {
Text(ContrastLevel.fromFloat(contrastState).getDisplayName(context))
}
},
interactionSource = interactionSource
) {
SliderDefaults.Thumb(interactionSource)
}
}
) )
Spacer(Modifier.size(5.dp))
CompositionLocalProvider(LocalTextStyle provides MaterialTheme.typography.bodyMedium) {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween
) {
Text(stringResource(R.string.contrast_very_low))
Text(stringResource(R.string.contrast_low))
Text(stringResource(R.string.contrast_default))
Text(stringResource(R.string.contrast_high))
Text(stringResource(R.string.contrast_very_high))
}
}
} }
} }

View file

@ -68,11 +68,11 @@
<string name="dark_mode_dark">深色模式</string> <string name="dark_mode_dark">深色模式</string>
<string name="pref_contrast_level">对比度</string> <string name="pref_contrast_level">对比度</string>
<string name="pref_contrast_level_desc">调整应用的颜色对比度</string> <string name="pref_contrast_level_desc">调整应用的颜色对比度</string>
<string name="contrast_very_low">非常</string> <string name="contrast_very_low"></string>
<string name="contrast_low"></string> <string name="contrast_low"></string>
<string name="contrast_default">默认</string> <string name="contrast_default">默认</string>
<string name="contrast_medium"></string>
<string name="contrast_high"></string> <string name="contrast_high"></string>
<string name="contrast_very_high">极高</string>
<string name="tip_change_contrast_level">更改颜色对比度</string> <string name="tip_change_contrast_level">更改颜色对比度</string>
<string name="pref_interface">界面</string> <string name="pref_interface">界面</string>
<string name="pref_interface_desc">待办列表、排序方式</string> <string name="pref_interface_desc">待办列表、排序方式</string>

View file

@ -72,8 +72,8 @@
<string name="contrast_very_low">Very Low</string> <string name="contrast_very_low">Very Low</string>
<string name="contrast_low">Low</string> <string name="contrast_low">Low</string>
<string name="contrast_default">Default</string> <string name="contrast_default">Default</string>
<string name="contrast_medium">Medium</string>
<string name="contrast_high">High</string> <string name="contrast_high">High</string>
<string name="contrast_very_high">Very High</string>
<string name="tip_change_contrast_level">Change the contrast level</string> <string name="tip_change_contrast_level">Change the contrast level</string>
<string name="pref_interface">Interface</string> <string name="pref_interface">Interface</string>
<string name="pref_interface_desc">To-Do List, sorting method</string> <string name="pref_interface_desc">To-Do List, sorting method</string>