📌  相关文章
📜  使用 Jetpack Compose 在 Android 中切换按钮(1)

📅  最后修改于: 2023-12-03 15:36:30.346000             🧑  作者: Mango

使用 Jetpack Compose 在 Android 中创建切换按钮

在这篇教程中,我们将使用 Jetpack Compose 来创建一个用于切换状态的按钮。

前置条件

在开始本教程之前,请确保您已经安装了以下内容:

  • Android Studio 4.0 及以上版本
  • Android SDK 29 及以上版本
  • Kotlin 1.4 及以上版本
创建一个新项目

首先,打开 Android Studio 并创建一个新的空项目。在创建项目时,请确保选择使用 Kotlin 语言。

添加 Compose 库

下一步是添加 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_viewComposeView,它将用于显示我们的 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
                        )
                    )
                }
            }
        }
    }
}

这个代码片段创建了一个单选按钮,并将其包装在一个列中。当按钮被点击时,我们使用 remembermutableStateOf 来更新其状态。这将触发 Compose UI 的重新绘制,从而反映出新的状态。

运行应用程序

现在,我们已经创建了切换按钮,让我们运行应用程序并查看它的行为。按下运行按钮,启动模拟器并等待应用程序加载。

当应用程序加载时,一个切换按钮将被显示在屏幕上。当您单击按钮时,它的状态将切换并反映在您的应用程序中。Congratulations!