根据文档null,我们可以通过设置来禁用 FAB onClick:
onClick - 当用户单击此 FAB 时将被调用。当FAB为空时,FAB将被禁用。
当我尝试它时,我偶然发现该onClick参数不可为空,
那么,如何禁用FAB呢?
android kotlin floating-action-button android-jetpack-compose android-compose-button
我想创建一个按钮,其中只有文本和图标,所有背景和边框都是透明的。我创建了类似的东西:
OutlinedButton(
colors = ButtonDefaults.buttonColors(backgroundColor = Color.Transparent),
border = BorderStroke(0.dp, Color.Transparent),
modifier = modifier,
onClick = onClick
) {
icon?.invoke()
Text(
text = value,
fontSize = 12.sp
)
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,但我丢失了默认颜色(应该是蓝色,并且我有黑色图标和文本)。如何从按钮中删除所有背景和边框但仍然具有主题颜色?
android android-jetpack-compose android-compose-button android-jetpack-compose-button
我正在尝试删除填充,TextButton但它不起作用。
TextButton(
onClick = {},
modifier = Modifier.padding(0.dp)
) {
Text(
" ${getString(R.string.terms_and_conditions)}",
color = MaterialTheme.colors.primary,
fontFamily = FontFamily(Font(R.font.poppins_regular)),
fontSize = 10.sp,
)
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过在属性中设置height和但填充仍然存在sizeModifier
android kotlin android-jetpack-compose android-compose-button android-jetpack-compose-button
我想自定义 IconButton 的颜色,而不是使用 TopAppBar 上设置的默认值,但在android.compose.material中没有插槽 api 来更改它。
Scaffold(
topBar = {
TopAppBar(
title = {
Text(text = "LayoutsCodelab")
},
actions = {
IconButton(onClick = { /* doSomething() */ }) { // <- why it has the theme color and how to custom it.
Icon(Icons.Filled.Favorite)
}
}
)
}
)
Run Code Online (Sandbox Code Playgroud) 我想使用 Jetpack Compose 构建这个从 AirBnB 应用程序按下的精彩按钮动画

不幸的是,动画/过渡 API 最近发生了变化,而且几乎没有相关的文档。有人可以帮助我找到实现此按钮按下动画的正确方法吗?
编辑 根据 @Amirhosein 的回答,我开发了一个按钮,看起来几乎与 Airbnb 的示例一模一样
代码:
@Composable
fun AnimatedButton() {
val boxHeight = animatedFloat(initVal = 50f)
val relBoxWidth = animatedFloat(initVal = 1.0f)
val fontSize = animatedFloat(initVal = 16f)
fun animateDimensions() {
boxHeight.animateTo(45f)
relBoxWidth.animateTo(0.95f)
// fontSize.animateTo(14f)
}
fun reverseAnimation() {
boxHeight.animateTo(50f)
relBoxWidth.animateTo(1.0f)
//fontSize.animateTo(16f)
}
Box(
modifier = Modifier
.height(boxHeight.value.dp)
.fillMaxWidth(fraction = relBoxWidth.value)
.clip(RoundedCornerShape(8.dp))
.background(Color.Black)
.clickable { }
.pressIndicatorGestureFilter(
onStart = {
animateDimensions()
},
onStop = {
reverseAnimation()
},
onCancel = { …Run Code Online (Sandbox Code Playgroud) Button(backgroundColor = Color.Yellow) {
Row {
Image(asset = image)
Spacer(4.dp)
Text("Button")
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我不能在 Button 上使用背景颜色我在 Compose Layout codelabs 上遵循了 Image() 中的 backgroundColor 和资产问题。请帮我弄清楚如何使用Buton,我还是新手
android android-button android-jetpack-compose android-compose-button
我们如何在 jetpack compose 中实现这一点
我正在做这样的事情
Button(
elevation = ButtonDefaults.elevation(
defaultElevation = 0.dp,
pressedElevation = 8.dp,
disabledElevation = 0.dp
),
onClick = { onClick },
shape = RoundedCornerShape(28.dp),
modifier = modifier
.fillMaxWidth()
.shadow(0.dp),
contentPadding = PaddingValues(15.dp),
colors = ButtonDefaults.buttonColors(backgroundColor = Color.White),
border = BorderStroke(1.dp, Color.Grey)
) {
Box(modifier = modifier.fillMaxWidth(),
contentAlignment = Alignment.Center) {
Icon(
imageVector = imageVector,
modifier = Modifier
.size(18.dp),
contentDescription = "drawable icons",
tint = Color.Unspecified
)
Spacer(modifier = Modifier.width(10.dp))
Text(
text = buttonText,
color = Color.Black,
textAlign …Run Code Online (Sandbox Code Playgroud) android android-jetpack-compose android-compose-textfield android-compose-button android-jetpack-compose-button
我正在尝试创建一个圆形OutlinedButton,中间有一个图标,没有文字。
OutlinedButton(onClick = { /*TODO*/ },
shape = CircleShape,
border= BorderStroke(1.dp, Color.Blue)
) {
Icon(Icons.Default.Add, contentDescription = "content description")
}
Run Code Online (Sandbox Code Playgroud)
最后一个按钮是椭圆形的:
使用IconButton:
IconButton(onClick = { },
modifier = Modifier
.clip(CircleShape)
.border(1.dp, Color.Red)
) {
Icon(Icons.Default.Add, contentDescription = "content description",tint = Color.Red)
}
Run Code Online (Sandbox Code Playgroud)
这是最终结果:
android android-button android-jetpack-compose android-compose-button
我正在尝试构建以下组件,
以下是我的代码,
Button(onClick = { /*TODO*/ }, modifier = Modifier.fillMaxWidth()) {
Image(painter = painterResource(id = R.drawable.ic_check_circle) , contentDescription = "")
Text(text = "John Doe", textAlign = TextAlign.Start)
Image(painter = painterResource(id = R.drawable.ic_arrow_forward), contentDescription = "",
alignment = Alignment.TopEnd)
}
Run Code Online (Sandbox Code Playgroud) android android-jetpack-compose android-compose-button android-jetpack-compose-button
我正在 Jetpack Compose 中构建一个可重用的 Button 组件,它基本上是一个Row. 该按钮的左端应有文本,右端应有图标。这可以直接像这样工作:
@Composable
fun MyButton(
text: String,
modifier: Modifier = Modifier
) {
Button(
onClick = { /* */ },
modifier = modifier
) { // RowScope
Text(
text = text
)
Spacer(modifier = Modifier.width(8.dp))
Icon(
painter = painterResource(
id = android.R.drawable.ic_dialog_info
),
contentDescription = null
)
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果按钮应用固定宽度,则文本和图标将居中而不是在左/右端。
所以我尝试添加modifier = Modifier.weight(1F)到,Text以便它填满任何额外的空间。但这会导致没有固定宽度的按钮占用尽可能多的空间。
如何构建一个可在两种情况下工作的 Compose 组件:定义宽度时和换行到内容时?
我的屏幕布局:
@Composable
fun MyScreen() {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.fillMaxSize()
) …Run Code Online (Sandbox Code Playgroud) android android-layout android-jetpack-compose android-compose-button android-jetpack-compose-button