📅  最后修改于: 2023-12-03 15:36:30.346000             🧑  作者: Mango
在这篇教程中,我们将使用 Jetpack Compose 来创建一个用于切换状态的按钮。
在开始本教程之前,请确保您已经安装了以下内容:
首先,打开 Android Studio 并创建一个新的空项目。在创建项目时,请确保选择使用 Kotlin 语言。
下一步是添加 Compose 库。打开 build.gradle 文件并添加以下依赖项:
dependencies {
def compose_version = '1.0.0-rc01'
// Core library
implementation "androidx.compose.runtime:runtime:$compose_version"
implementation "androidx.compose.compiler:compiler:$compose_version"
// UI
implementation "androidx.compose.ui:ui:$compose_version"
implementation "androidx.compose.material:material:$compose_version"
implementation "androidx.compose.ui:ui-tooling:$compose_version"
}
现在,我们可以开始创建切换按钮了。打开 activity_main.xml 文件并使用以下代码替换其内容:
<?xml version="1.0" encoding="utf-8"?>
<androidx.compose.ui.platform.ComposeView
android:id="@+id/compose_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
这个代码片段创建了一个名称为 compose_view
的 ComposeView
,它将用于显示我们的 Compose UI。
接下来,我们需要创建我们的 Compose UI。替换 MainActivity
的内容:
package com.example.togglebutton
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.selection.selectable
import androidx.compose.material.MaterialTheme
import androidx.compose.material.RadioButton
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.Alignment
import androidx.compose.ui.unit.dp
import androidx.compose.ui.viewinterop.AndroidView
import androidx.compose.ui.window.Dialog
import org.jetbrains.skia.ColorSpace
import java.security.cert.Certificate
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MaterialTheme {
Column(
modifier = Modifier
.fillMaxSize()
.padding(horizontal = 16.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
var selected by remember { mutableStateOf(false) }
RadioButton(
selected = selected,
modifier = Modifier.selectable(
selected = selected,
onClick = { selected = true }
),
colors = RadioButtonDefaults.colors(
selectedColor = MaterialTheme.colors.secondaryVariant,
unselectedColor = Color.Black
)
)
}
}
}
}
}
这个代码片段创建了一个单选按钮,并将其包装在一个列中。当按钮被点击时,我们使用 remember
和 mutableStateOf
来更新其状态。这将触发 Compose UI 的重新绘制,从而反映出新的状态。
现在,我们已经创建了切换按钮,让我们运行应用程序并查看它的行为。按下运行按钮,启动模拟器并等待应用程序加载。
当应用程序加载时,一个切换按钮将被显示在屏幕上。当您单击按钮时,它的状态将切换并反映在您的应用程序中。Congratulations!