JetpackCompose 中 TextField/BasicTextField 的 API 更改

问题描述 投票:0回答:1

我正在尝试熟悉最新的 Jetpack-Compose,但我发现 BasicTextField 的 Material3 版本不匹配......几乎任何地方的任何示例。我很想知道它是如何改变的。它甚至看起来与 BasicTextField2 的简短外观不匹配。

具体来说,当我要求 AndroidStudio 显示所有参数时,我得到以下信息:

        BasicTextField(
            state = TODO(),
            modifier = TODO(),
            enabled = TODO(),
            readOnly = TODO(),
            inputTransformation = TODO(),
            textStyle = TODO(),
            keyboardOptions = TODO(),
            onKeyboardAction = TODO(),
            lineLimits = TODO(),
            onTextLayout = TODO(),
            interactionSource = TODO(),
            cursorBrush = TODO(),
            outputTransformation = TODO(),
            decorator = TODO(),
            scrollState = TODO()
        )

注意不再有“值”参数(它嵌入在“状态”中)。 “onValueChanged”也移动了,所以现在我只想看看这个东西里面有什么以及它是如何工作的。 我对此的无礼表示歉意,但我找不到 BasicTextField 的这个特定迭代的文档。

我在哪里可以找到有关“无价值”BasicTextField 的文档,如果我决定不喜欢它,我需要将compileSdk降级到多远才能恢复旧版本?

android-jetpack-compose android-compose-textfield
1个回答
0
投票

我发现 BasicTextField 的 Material3 版本

BasicTextField()
不是 Compose Material3 的一部分。所有以
Basic
开头的标准可组合项都是 Compose Foundation 的一部分,专为创建自己的设计系统的开发人员而设计。 Compose Material3有
TextField()
,将Material Design 3设计系统应用到文本录入。

在哪里可以找到有关“无值”BasicTextField 的文档

可以在整个 Android 开发者文档中找到。

我需要将compileSdk降级到多远才能恢复旧版本?

compileSdk
与此无关。 Compose 是一系列库;它没有作为
compileSdk
连接到的框架的一部分发布。

注意如何不再有“值”参数(它嵌入在“状态”中)

存在

BsaicTextField()
的重载,将
value
作为
String
。还有 这个重载将
value
作为
TextFieldValue

© www.soinside.com 2019 - 2024. All rights reserved.