pref: Pad 上更改为居中弹窗
This commit is contained in:
parent
884218b50c
commit
46a42746dc
|
|
@ -40,9 +40,12 @@ import androidx.compose.ui.text.input.ImeAction
|
|||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.huanchengfly.tieba.post.R
|
||||
import com.huanchengfly.tieba.post.arch.BaseComposeActivity.Companion.LocalWindowSizeClass
|
||||
import com.huanchengfly.tieba.post.ui.common.theme.compose.ExtendedTheme
|
||||
import com.huanchengfly.tieba.post.ui.common.windowsizeclass.WindowWidthSizeClass
|
||||
import com.huanchengfly.tieba.post.ui.widgets.compose.dialogs.AnyPopDialog
|
||||
import com.huanchengfly.tieba.post.ui.widgets.compose.dialogs.AnyPopDialogProperties
|
||||
import com.huanchengfly.tieba.post.ui.widgets.compose.dialogs.DirectionState
|
||||
import com.huanchengfly.tieba.post.ui.widgets.compose.picker.TimePicker
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
|
|
@ -340,6 +343,7 @@ fun Dialog(
|
|||
isActiveClose = true
|
||||
},
|
||||
)
|
||||
val windowWidthSizeClass = LocalWindowSizeClass.current.widthSizeClass
|
||||
AnyPopDialog(
|
||||
isActiveClose = isActiveClose,
|
||||
onDismiss = {
|
||||
|
|
@ -348,13 +352,24 @@ fun Dialog(
|
|||
showDialog = false
|
||||
},
|
||||
properties = AnyPopDialogProperties(
|
||||
direction = if (windowWidthSizeClass == WindowWidthSizeClass.Compact) {
|
||||
DirectionState.BOTTOM
|
||||
} else {
|
||||
DirectionState.CENTER
|
||||
},
|
||||
dismissOnBackPress = cancelable,
|
||||
dismissOnClickOutside = cancelableOnTouchOutside
|
||||
)
|
||||
) {
|
||||
Column(
|
||||
modifier = modifier
|
||||
.fillMaxWidth()
|
||||
.fillMaxWidth(
|
||||
fraction = if (windowWidthSizeClass == WindowWidthSizeClass.Compact) {
|
||||
1f
|
||||
} else {
|
||||
0.6f
|
||||
}
|
||||
)
|
||||
.padding(16.dp)
|
||||
.background(
|
||||
color = ExtendedTheme.colors.windowBackground,
|
||||
|
|
|
|||
|
|
@ -9,8 +9,13 @@ import android.view.WindowManager
|
|||
import androidx.activity.compose.BackHandler
|
||||
import androidx.compose.animation.Animatable
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.animation.core.Spring
|
||||
import androidx.compose.animation.core.spring
|
||||
import androidx.compose.animation.core.tween
|
||||
import androidx.compose.animation.fadeIn
|
||||
import androidx.compose.animation.fadeOut
|
||||
import androidx.compose.animation.scaleIn
|
||||
import androidx.compose.animation.scaleOut
|
||||
import androidx.compose.animation.slideInHorizontally
|
||||
import androidx.compose.animation.slideInVertically
|
||||
import androidx.compose.animation.slideOutHorizontally
|
||||
|
|
@ -136,6 +141,7 @@ private fun DialogFullScreen(
|
|||
DirectionState.TOP -> Alignment.TopCenter
|
||||
DirectionState.LEFT -> Alignment.CenterStart
|
||||
DirectionState.RIGHT -> Alignment.CenterEnd
|
||||
DirectionState.CENTER -> Alignment.Center
|
||||
else -> Alignment.BottomCenter
|
||||
}
|
||||
) {
|
||||
|
|
@ -155,12 +161,26 @@ private fun DialogFullScreen(
|
|||
DirectionState.TOP -> slideInVertically(initialOffsetY = { -it })
|
||||
DirectionState.LEFT -> slideInHorizontally(initialOffsetX = { -it })
|
||||
DirectionState.RIGHT -> slideInHorizontally(initialOffsetX = { it })
|
||||
DirectionState.CENTER -> fadeIn(
|
||||
animationSpec = spring(stiffness = Spring.StiffnessMediumLow)
|
||||
) + scaleIn(
|
||||
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
|
||||
initialScale = 0.8F
|
||||
)
|
||||
|
||||
else -> slideInVertically(initialOffsetY = { it })
|
||||
},
|
||||
exit = when (properties.direction) {
|
||||
DirectionState.TOP -> fadeOut() + slideOutVertically(targetOffsetY = { -it })
|
||||
DirectionState.LEFT -> fadeOut() + slideOutHorizontally(targetOffsetX = { -it })
|
||||
DirectionState.RIGHT -> fadeOut() + slideOutHorizontally(targetOffsetX = { it })
|
||||
DirectionState.CENTER -> fadeOut(
|
||||
animationSpec = spring(stiffness = Spring.StiffnessMediumLow)
|
||||
) + scaleOut(
|
||||
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
|
||||
targetScale = 0.8F
|
||||
)
|
||||
|
||||
else -> fadeOut() + slideOutVertically(targetOffsetY = { it })
|
||||
}
|
||||
) {
|
||||
|
|
@ -251,7 +271,8 @@ enum class DirectionState {
|
|||
TOP,
|
||||
LEFT,
|
||||
RIGHT,
|
||||
BOTTOM
|
||||
BOTTOM,
|
||||
CENTER
|
||||
}
|
||||
|
||||
private fun Modifier.clickOutSideModifier(
|
||||
|
|
|
|||
Loading…
Reference in New Issue