mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-09 08:04:45 +00:00
Fixes shadow clipping in the light theme on FAB buttons.
This commit is contained in:
+6
-1
@@ -22,12 +22,15 @@ package com.vitorpamplona.amethyst.ui.layouts
|
||||
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.BoxScope
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.material3.BottomAppBarScrollBehavior
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.graphicsLayer
|
||||
import androidx.compose.ui.layout.layout
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
@@ -42,6 +45,7 @@ fun DisappearingFloatingButton(
|
||||
Box(
|
||||
modifier =
|
||||
Modifier
|
||||
.size(75.dp)
|
||||
.layout { measurable, constraints ->
|
||||
val placeable = measurable.measure(constraints)
|
||||
// Adjust the height of the layout so the FAB doesn't leave a "hole"
|
||||
@@ -50,12 +54,13 @@ fun DisappearingFloatingButton(
|
||||
placeable.placeRelative(0, 0)
|
||||
}
|
||||
}.graphicsLayer {
|
||||
this.translationY = this.size.height / 3.5f
|
||||
this.scaleX = progress
|
||||
this.scaleY = progress
|
||||
this.alpha = progress
|
||||
// Clip the content as it shrinks to prevent overflow
|
||||
clip = true
|
||||
},
|
||||
contentAlignment = Alignment.TopCenter,
|
||||
content = content,
|
||||
)
|
||||
}
|
||||
|
||||
+21
-2
@@ -21,8 +21,11 @@
|
||||
package com.vitorpamplona.amethyst.ui.screen.loggedIn.home
|
||||
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.material3.BottomAppBarDefaults
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.FloatingActionButton
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
@@ -30,8 +33,10 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.vitorpamplona.amethyst.R
|
||||
import com.vitorpamplona.amethyst.ui.layouts.DisappearingFloatingButton
|
||||
import com.vitorpamplona.amethyst.ui.navigation.navs.EmptyNav
|
||||
import com.vitorpamplona.amethyst.ui.navigation.navs.INav
|
||||
import com.vitorpamplona.amethyst.ui.navigation.routes.Route
|
||||
@@ -41,11 +46,25 @@ import com.vitorpamplona.amethyst.ui.theme.Size26Modifier
|
||||
import com.vitorpamplona.amethyst.ui.theme.Size55Modifier
|
||||
import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonRow
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Preview
|
||||
@Composable
|
||||
fun NewNoteButtonPreview() {
|
||||
val bottomBehavior =
|
||||
BottomAppBarDefaults.exitAlwaysScrollBehavior(
|
||||
canScroll = { true },
|
||||
)
|
||||
|
||||
ThemeComparisonRow {
|
||||
Box(Modifier.size(200.dp), contentAlignment = Alignment.Center) {
|
||||
NewNoteButton(EmptyNav())
|
||||
Column {
|
||||
Box(Modifier.size(200.dp), contentAlignment = Alignment.Center) {
|
||||
DisappearingFloatingButton(bottomBehavior) {
|
||||
NewNoteButton(EmptyNav())
|
||||
}
|
||||
}
|
||||
Box(Modifier.size(200.dp), contentAlignment = Alignment.Center) {
|
||||
NewNoteButton(EmptyNav())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user