mirror of
https://github.com/T8RIN/ImageToolbox.git
synced 2025-08-06 15:49:35 +08:00
shape interactions improved
This commit is contained in:
@ -22,9 +22,6 @@ import android.graphics.Bitmap
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.animation.core.animateDpAsState
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.interaction.collectIsPressedAsState
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
@ -49,8 +46,6 @@ import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalUriHandler
|
||||
@ -226,22 +221,12 @@ class CrashActivity : CrashHandler() {
|
||||
}
|
||||
}
|
||||
Spacer(modifier = Modifier.height(16.dp))
|
||||
val interactionSource = remember {
|
||||
MutableInteractionSource()
|
||||
}
|
||||
val pressed by interactionSource.collectIsPressedAsState()
|
||||
|
||||
val cornerSize by animateDpAsState(
|
||||
if (pressed) 8.dp
|
||||
else 24.dp
|
||||
)
|
||||
ExpandableItem(
|
||||
shape = RoundedCornerShape(24.dp),
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(horizontal = 16.dp)
|
||||
.navigationBarsPadding(),
|
||||
shape = RoundedCornerShape(cornerSize),
|
||||
interactionSource = interactionSource,
|
||||
visibleContent = {
|
||||
Icon(
|
||||
imageVector = Icons.Rounded.BugReport,
|
||||
|
@ -56,6 +56,7 @@ import ru.tech.imageresizershrinker.core.ui.utils.animation.FancyTransitionEasin
|
||||
import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton
|
||||
import ru.tech.imageresizershrinker.core.ui.widget.enhanced.hapticsCombinedClickable
|
||||
import ru.tech.imageresizershrinker.core.ui.widget.modifier.container
|
||||
import ru.tech.imageresizershrinker.core.ui.widget.modifier.shapeByInteraction
|
||||
|
||||
@Composable
|
||||
fun ExpandableItem(
|
||||
@ -65,6 +66,7 @@ fun ExpandableItem(
|
||||
initialState: Boolean = false,
|
||||
verticalArrangement: Arrangement.Vertical = Arrangement.Top,
|
||||
shape: Shape = RoundedCornerShape(20.dp),
|
||||
pressedShape: Shape = RoundedCornerShape(6.dp),
|
||||
color: Color = Color.Unspecified,
|
||||
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
||||
canExpand: Boolean = true,
|
||||
@ -72,6 +74,12 @@ fun ExpandableItem(
|
||||
onLongClick: (() -> Unit)? = null,
|
||||
expansionIconContainerColor: Color = Color.Transparent
|
||||
) {
|
||||
val shape = shapeByInteraction(
|
||||
shape = shape,
|
||||
pressedShape = pressedShape,
|
||||
interactionSource = interactionSource
|
||||
)
|
||||
|
||||
Column(
|
||||
Modifier
|
||||
.animateContentSize(
|
||||
|
Reference in New Issue
Block a user