标签: android-compose-textfield

是否有 Jetpack Compose 相当于密码字段且密码对用户可见?

  • 产品:安卓应用程序
  • 编程语言:科特林

使用 XML 创建 UI 时。有一个密码字段选项,其中密码对用户可见。开发人员所要做的就是设置inputType = TYPE_TEXT_VARIATION_VISIBLE_PASSWORD

在 Jetpack Compose 中,可以选择创建 textField()。然后传入visualTransformation = PasswordVisualTransformation()让打字变成点。然而,它不会像 XML 那样预览字母几秒钟,然后才变成点。

想知道是否有一个等效的 jetpack 撰写密码字段的功能,其中密码在变成点之前对用户可见几秒钟。

谢谢

android kotlin android-jetpack-compose android-compose-textfield

17
推荐指数
1
解决办法
6398
查看次数

对文本进行部分着色并使其在 Jetpack Compose 中可单击

对于 XML 中声明的视图,我们可以使用SpannableStringBuilder此处提到的/sf/answers/342818871/ 来为部分字符串着色。

但是使用 JetPack compose,Text我无法仅使用单个Text.

我想要这样的东西。

部分彩色文字

正如您所看到的,只有“注册”文本具有不同的颜色,而且我想让它可点击

这就是我的文本代码目前的样子

Text(text = "Don't have an account? Sign Up",
                        modifier = Modifier.align(Alignment.BottomCenter),
                        style = MaterialTheme.typography.h6,
                        color = MaterialTheme.colors.secondary,
                    )
Run Code Online (Sandbox Code Playgroud)

这在jetpack compose中可能吗?

android kotlin android-jetpack-compose android-compose-textfield

17
推荐指数
1
解决办法
1万
查看次数

Android Jetpack compose (1.0.0-beta07):TextField - 无法使用提供的参数调用以下函数

我开始使用 Jetpack compose (1.0.0-beta07),并且在 TextField 方面遇到了一个非常奇怪的问题。根据所有可能的文档和说明,我做的一切都是正确的,但是 Android Studio 不断给我写None of the following functions can be called with the arguments supplied.消息TextField

下面是我编写的代码,其中 Studio 仍然强调Text (label)text = it,但我认为它在定义 时存在问题TextFieldremember {mutableStateOf ("text")}当我替换为时,问题消失了"text",但TextField在键入键盘时不会更改文本。

import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.text.input.KeyboardType

@Composable
fun SimpleTextField(label: String = "Label", key: String = "unknown", keyboardType: KeyboardType = KeyboardType.Text){
    var text = remember {
        mutableStateOf("text")
    }

    TextField(
        value = …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose android-compose-textfield

16
推荐指数
1
解决办法
5514
查看次数

Jetpack Compose TextField 捕获键盘 Enter 输入

据我了解,Jetpack Compose Textfield 有一个 API 用于捕获键盘操作,但我不知道该 API 中有哪些可以捕获 Enter-Input

此捕获输入输入的用例是启用单击 Enter 并尝试转到下一个 TextField 并保持键盘打开

OutlinedTextField(
    value = username.value,
    onValueChange = {
        username.value = it
        },
    keyboardActions = KeyboardActions(
        onDone = {},
        onGo = {},
        onNext = {},
        onPrevious ={},
        onSearch ={},
        onSend = {}
        )
)
Run Code Online (Sandbox Code Playgroud)

android textfield kotlin android-jetpack-compose android-compose-textfield

16
推荐指数
1
解决办法
2万
查看次数

Jetpack Compose ExusedDropdownMenu 按下时不显示

我正在开发 Jetpack Compose (1.3.0-beta03) 和 Material3 (1.0.0-beta03) 应用程序。

我想向用户展示一个具有不同语言的简单下拉菜单,并且以下代码与您在网上找到的代码没有太大不同:

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun Settings() {
    val languages = listOf("it", "en", "de", "ro", "fr", "es")

    var expanded by remember { mutableStateOf(false) }
    var selectedOptionText by remember { mutableStateOf("ro") }

    ExposedDropdownMenuBox(
        modifier = Modifier.padding(16.dp),
        expanded = expanded,
        onExpandedChange = { expanded = !expanded },
    ) {
        TextField(
            readOnly = true,
            value = selectedOptionText,
            onValueChange = {},
            label = { Text(stringResource(R.string.default_reading_language)) },
            trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) },
            colors = ExposedDropdownMenuDefaults.textFieldColors(),
            modifier = …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose android-compose-textfield android-jetpack-compose-material3 android-compose-exposeddropdown

16
推荐指数
1
解决办法
5008
查看次数

如何在 Android Compose TextField 的虚拟键盘上启用大写?

我最近开始转向使用 Compose 在 Android 中制作 UI。到目前为止我很喜欢它,但有时我仍然很难找到正确的文档。如果这个问题非常明显,我很抱歉!

在我当前正在开发的应用程序中,我有一个TextField用于输入消息标题的应用程序。一切工作正常,除了虚拟(屏幕上)键盘默认情况下不会启用第一个字母的大写锁定。是否可以在虚拟键盘上启用大写锁定TextField,如果可以,如何启用?仅对于TextField(或在一个句子中,它是一个标题字段,因此应该只有一个句子)中的第一个字符是必要的,如果用户想要大写更多,欢迎他们自己做:)所以我基本上是寻找的是android:inputType="textCapSentences"EditText 的 XML 属性的 Compose 版本。

我的代码TextField如下。一些背景知识以防万一: isTextField位于 a 内部Stack,也包含 a Text。我用它来显示提示,以防万一它TextField是空的。Stack位于 a 内,Column而 a 又位于VerticalScroller包裹整个屏幕的 a 内。我正在使用 Android Studio 4.0 Canary 7。

首先十分感谢!

// Model saving the current state of the TextField
val modelTitle = +state{EditorModel()}
// Context (aka the Activity) necessary to get the focus and input …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose android-compose-textfield

15
推荐指数
2
解决办法
6523
查看次数

Jetpack Compose 的 TextField 中的多种颜色

是否可以在 Jetpack Compose 的 TextField 中获得不同的颜色?

类似于Text可组合 with AnnotatedString,但 TextField 不允许AnnotatedString作为输入值。

可与颜色组合的普通文本图像

在此输入图像描述

android kotlin android-textinputlayout android-jetpack-compose android-compose-textfield

15
推荐指数
1
解决办法
4955
查看次数

焦点时 TextField 隐藏在键盘下方

我有一个隐藏在键盘下的 TextField 问题,我在这里找到了类似问题的答案,但它们对我的情况没有帮助。我有一个 LazyColumn,其中包含不同可组合项的列表,当窗口中没有足够的元素来激活滚动时,专注于 TextField 不会将聚焦的 TextField 提升到键盘上方。键盘只是隐藏它。我的代码:

val listState = rememberLazyListState()
typealias ComposableType = @Composable (Int) -> Unit
val uiList = listOf<ComposableType>( {IconButton}, {Text}, {CustomTextField(listState,it)}, {CustomTextField(listState,it)})
LazyColumn() {
    itemsIndexed(uiList) { index, ui ->
                ui.invoke(index)
        }
}

val scope = rememberCoroutineScope()
@Composable
CustomTextField(scrollState: LazyListState, position: Int) {
    OutlinedTextField(
        modifier = Modifier.onFocusEvent { focusState ->
            if (focusState.isFocused) {
                scope.launch {
                    scrollState.animateScrollToItem(position)
                }
            }
    )    
}
Run Code Online (Sandbox Code Playgroud)

因此,例如,如果我的 uiList 中有 10 个 CustomTextField,则当其中一个 TextField 获得焦点时,滚动就会起作用。但是,当 uiList 中只有 2 个 TextField 时,关注其中任何一个都不会将它们提升到键盘上方。 …

android-jetpack android-jetpack-compose android-compose-textfield android-jetpack-compose-list

14
推荐指数
2
解决办法
8822
查看次数

Jetpack Compose textField 上的 maxlines 不起作用

我正在制作一个待办事项应用程序,当我编写待办事项时,我只放置了 1 行,但是当我单击 Enter 时,它会创建一个新行,有什么方法可以修复它吗?

@Composable
fun TextFieldDemo() {
        Column(
            Modifier
                .padding(50.dp, 600.dp, 0.dp, 0.dp)
                .fillMaxHeight()) {
            val textState = remember { mutableStateOf(TextFieldValue()) }
            TextField(
                value = textState.value,
                onValueChange = { textState.value = it },
                label = {Text(text = "What you need Todo?")},
                singleLine = true //apenas uma linha de texto , podendo usar-se tambem singleLine = true

            )

        }
    }
Run Code Online (Sandbox Code Playgroud)

kotlin android-jetpack-compose android-compose-textfield

13
推荐指数
2
解决办法
3726
查看次数

OutlinedTextField 不会在 Compose 中调整为最小宽度

我试图使 OutlinedTextField (见下图)充当“wrap-content”。理想的情况是它足够大以适合内部文本500g并在用户编辑字段时扩展和收缩。如果我没记错的话,可以使用(非 Compose)ConstraintLayout 来处理旧视图,但在 Compose 中这不起作用。

到目前为止,我已经尝试调整各种修改器(每个修改器都是单独的):

.defaultMinSize(minWidth = 10.dp)

.width(IntrinsicSize.Min)

.widthIn(1.dp, Dp.Infinity)

.requiredWidth(IntrinsicSize.Min) 
Run Code Online (Sandbox Code Playgroud)

我也尝试将 放入RowCompose 中ConstraintLayout,但似乎没有任何效果

如果我将尺寸修改器设置为较小的宽度,它确实会减小宽度,但不再扩展......

有人能够实现这一点吗?

轮廓文本字段需要很小

android android-jetpack-compose android-compose-textfield

13
推荐指数
1
解决办法
3347
查看次数