在 Jetpack Compose 中,创建一个按钮(Button)的实例是相对简单的。下面是一个基本的 Button 示例,展示了如何定义一个带有点击事件和文本的按钮:
kotlin
复制
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
@Composable
fun ButtonExample() {
// 创建一个按钮
Button(
onClick = { /* 点击事件处理逻辑 */ },
modifier = Modifier
.fillMaxWidth()
.padding(16.dp)
) {
// 按钮内部的文本
Text(
text = “点击我”,
color = MaterialTheme.colors.onPrimary,
fontWeight = FontWeight.Bold,
modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp)
)
}
}
在这个示例中,Button 组件接受一个 onClick 参数,这是一个 Lambda 表达式,定义了当用户点击按钮时应该执行的操作。在这个例子中,点击事件是空的,你可以在这里添加你自己的逻辑,比如跳转到新的屏幕、更新 UI 状态等。
modifier 参数用于定义按钮的布局属性,比如 fillMaxWidth() 使按钮宽度填充其父容器,padding() 添加了内边距。
Text 组件用于在按钮内部显示文本。你可以设置文本的颜色、字体粗细和其他文本相关的属性。
要在你的应用中使用这个 ButtonExample,你需要在你的 Activity 或 Fragment 的 setContent 方法中调用它,像这样:
kotlin
复制
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.platform.setContent
import androidx.activity.ComponentActivity
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) {
ButtonExample()
}
}
}
}
在这个 Activity 的例子中,setContent 方法用于设置应用的 UI 内容,这里我们调用了 ButtonExample 函数来显示我们的按钮。CompositionLocalProvider 用于提供 ContentAlpha 的值,这是 Material Design 主题的一部分。