[英]How to add a shadow / border / elevation to an icon in Jetpack Compose
[英]How to add elevation just in the bottom of an element? Jetpack Compose
您應該在 Compose 中為元素添加高程和陰影的方式是使用Surfaces
作為其他內容的容器。
來自Surface
文檔
材料表面是材料設計的核心隱喻。 每個表面都存在於給定的高度,這會影響該表面如何在視覺上與其他表面相關,以及該表面如何通過色調變化進行修改。
因此,要將陰影添加到選項卡布局中,您可以執行以下操作
Surface(
shadowElevation = 9.dp, // play with the elevation values
) {
Column {
TabRow(...) // your current TabRow content
}
}
如果上面沒有提供所需的陰影效果(我需要一個更強的陰影),並且因為你有一個矩形形狀,你可以使用線性漸變來代替。
編寫一個@Composable
函數來制作“影子”
@Composable
fun BottomShadow(alpha: Float = 0.1f, height: Dp = 8.dp) {
Box(modifier = Modifier
.fillMaxWidth()
.height(height)
.background(
brush = Brush.verticalGradient(
colors = listOf(
Color.Black.copy(alpha = alpha),
Color.Transparent,
)
)
)
)
}
然后在現有的 Compose 布局中使用它
Column {
TabRow(...) // your current TabRow content
BottomShadow(alpha = .15f, height = 8.dp) // use higher alpha for a stronger shadow
}
您可以在 TabRow 上使用修飾符shadow
。 例如,要添加默認的頂部應用欄高度,您可以執行以下操作:
TabRow(
modifier = modifier.shadow(AppBarDefaults.TopAppBarElevation),
...
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.