mirror of
https://github.com/BetterAndroid/FlexiUI.git
synced 2025-09-09 12:04:11 +08:00
refactor: change padding type to PaddingValues in Switch
This commit is contained in:
@@ -33,6 +33,7 @@ import androidx.compose.foundation.gestures.rememberDraggableState
|
|||||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||||
import androidx.compose.foundation.interaction.collectIsHoveredAsState
|
import androidx.compose.foundation.interaction.collectIsHoveredAsState
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.RowScope
|
import androidx.compose.foundation.layout.RowScope
|
||||||
import androidx.compose.foundation.layout.offset
|
import androidx.compose.foundation.layout.offset
|
||||||
@@ -61,6 +62,7 @@ import com.highcapable.flexiui.LocalColors
|
|||||||
import com.highcapable.flexiui.LocalShapes
|
import com.highcapable.flexiui.LocalShapes
|
||||||
import com.highcapable.flexiui.LocalSizes
|
import com.highcapable.flexiui.LocalSizes
|
||||||
import com.highcapable.flexiui.extension.borderOrNot
|
import com.highcapable.flexiui.extension.borderOrNot
|
||||||
|
import com.highcapable.flexiui.extension.horizontal
|
||||||
import com.highcapable.flexiui.extension.status
|
import com.highcapable.flexiui.extension.status
|
||||||
import com.highcapable.flexiui.interaction.clickable
|
import com.highcapable.flexiui.interaction.clickable
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
@@ -74,7 +76,7 @@ data class SwitchColors(
|
|||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
data class SwitchStyle(
|
data class SwitchStyle(
|
||||||
val padding: Dp,
|
val padding: PaddingValues,
|
||||||
val contentSpacing: Dp,
|
val contentSpacing: Dp,
|
||||||
val thumbRadius: Dp,
|
val thumbRadius: Dp,
|
||||||
val thumbGain: Float,
|
val thumbGain: Float,
|
||||||
@@ -99,7 +101,7 @@ fun Switch(
|
|||||||
content: @Composable () -> Unit = {}
|
content: @Composable () -> Unit = {}
|
||||||
) {
|
) {
|
||||||
val thumbDiameter = style.thumbRadius * 2
|
val thumbDiameter = style.thumbRadius * 2
|
||||||
val maxOffsetX = with(LocalDensity.current) { (style.trackWidth - thumbDiameter - style.padding * 2).toPx() }
|
val maxOffsetX = with(LocalDensity.current) { (style.trackWidth - thumbDiameter - style.padding.horizontal).toPx() }
|
||||||
val halfWidth = maxOffsetX / 2
|
val halfWidth = maxOffsetX / 2
|
||||||
val hovered by interactionSource.collectIsHoveredAsState()
|
val hovered by interactionSource.collectIsHoveredAsState()
|
||||||
var dragging by remember { mutableStateOf(false) }
|
var dragging by remember { mutableStateOf(false) }
|
||||||
@@ -132,7 +134,7 @@ fun Switch(
|
|||||||
}.background(if (efficientDragging) trackColor else animatedTrackColor, style.trackShape)
|
}.background(if (efficientDragging) trackColor else animatedTrackColor, style.trackShape)
|
||||||
.borderOrNot(style.trackBorder, style.trackShape)
|
.borderOrNot(style.trackBorder, style.trackShape)
|
||||||
.size(style.trackWidth, style.trackHeight)
|
.size(style.trackWidth, style.trackHeight)
|
||||||
.padding(horizontal = style.padding),
|
.padding(style.padding),
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
content = content
|
content = content
|
||||||
)
|
)
|
||||||
@@ -211,8 +213,8 @@ private fun defaultSwitchColors() = SwitchColors(
|
|||||||
@Composable
|
@Composable
|
||||||
@ReadOnlyComposable
|
@ReadOnlyComposable
|
||||||
private fun defaultSwitchStyle() = SwitchStyle(
|
private fun defaultSwitchStyle() = SwitchStyle(
|
||||||
|
padding = PaddingValues(horizontal = DefaultSwitchPadding),
|
||||||
contentSpacing = LocalSizes.current.spacingSecondary,
|
contentSpacing = LocalSizes.current.spacingSecondary,
|
||||||
padding = DefaultSwitchPadding,
|
|
||||||
thumbRadius = DefaultThumbRadius,
|
thumbRadius = DefaultThumbRadius,
|
||||||
thumbGain = DefaultThumbGain,
|
thumbGain = DefaultThumbGain,
|
||||||
thumbShadowSize = DefaultThumbShadowSize,
|
thumbShadowSize = DefaultThumbShadowSize,
|
||||||
|
Reference in New Issue
Block a user