标签: android-jetpack-compose-text

如何更改 jetpack compose 中文本字段光标位置

我在文本字段上方有文本建议芯片视图列表,当用户单击芯片时,我将文本附加到文本字段中。之后我想将光标移动到结束位置。我在 Jetpack compose 中找不到此问题的解决方案。之前我们曾经editText.setSelection(position)在 Android 视图中更改光标位置。

如何在jetpack compose Textfield中设置光标位置?

         OutlinedTextField(
                    value = value,
                    onValueChange = { value = it },
                    maxLines = 8,
                    label = {
                        Text(
                            text = "Content",
                            maxLines = 1
                        )
                    },

                    modifier = Modifier
                        .fillMaxWidth()
                        .height(200.dp),
                    shape = RoundedCornerShape(2.dp),

                    )
Run Code Online (Sandbox Code Playgroud)

android-jetpack-compose android-jetpack-compose-text

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

如何使用 MaterialTheme 覆盖 Jetpack Compose 中 TextField 中的文本颜色?

我正在尝试使用TextField()Jetpack Compose。我希望文本颜色为白色。

我发现这有效:

ProvideTextStyle(TextStyle(color = Color.White)) {
   TextField(
       ...
   )
}
Run Code Online (Sandbox Code Playgroud)

但是,我想在主题级别覆盖它,这样我就不需要重复编写ProvideTextStyle. 我看到MaterialTheme只接受以下参数:

@Composable
fun MaterialTheme(
    colors: Colors = MaterialTheme.colors,
    typography: Typography = MaterialTheme.typography,
    shapes: Shapes = MaterialTheme.shapes,
    content: @Composable () -> Unit
)
Run Code Online (Sandbox Code Playgroud)

所以我不知道该怎么做。有人可以帮忙吗?

(撰写版本 = 1.0.0-alpha11)

android android-layout android-jetpack-compose android-compose-textfield android-jetpack-compose-text

27
推荐指数
4
解决办法
3万
查看次数

在 Jetpack Compose 中设置焦点顺序的最简单方法是什么?

我有一列 TextFields,类似于:

Column {
    TextField(
        value = ...,
        onValueChange = { ... },
        keyboardOptions = KeyboardOptions(imeAction = ImeAction.next),
    )
    TextField(
        value = ...,
        onValueChange = { ... },
        keyboardOptions = KeyboardOptions(imeAction = ImeAction.next),
    )
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

我希望当用户按 Tab 或键盘上的下一个按钮时,每个 TextField 上的焦点移动到下一个。当前按 Tab 键会在 TextField 中插入一个选项卡。按下一步按钮不会执行任何操作。我可以为每个 TextField 创建一个 FocusRequester 并设置 KeyboardActions onNext 以请求将焦点放在每个 TextField 的下一个字段上。这有点乏味,而且它没有解决 Tab 行为。

android android-jetpack-compose android-jetpack-compose-text

24
推荐指数
4
解决办法
2万
查看次数

如何使用 Android Jetpack Compose Text() 设置行间距?

我想dpText()内容的行与行之间留出更多空间。我找到的唯一属性是letterSpacingof TextStyle,但是,它似乎不是我想要的,我们可以通过某种方式设置它吗?

android android-jetpack-compose android-jetpack-compose-text

21
推荐指数
3
解决办法
3万
查看次数

如何在关闭键盘时清除 TextField 焦点并防止在 Jetpack Compose 中退出应用程序时需要按两次后退?

我正在使用BasicTextField。

当我开始编辑时,后退按钮变成隐藏键盘按钮(向下箭头)。

第一次按后退按钮会隐藏键盘,但焦点仍然在文本字段上。两者onFocusChangedBackPressHandler处理程序都没有被调用。

第二次按后退按钮可清除焦点:onFocusChanged被调用且未BackPressHandler被调用。

BackHandler {
    println("BackPressHandler")
}
val valueState = remember { mutableStateOf(TextFieldValue(text = "")) }
BasicTextField(
    value = valueState.value,
    onValueChange = {
        valueState.value = it
    },
    modifier = Modifier
        .fillMaxWidth()
        .onFocusChanged {
            println("isFocused ${it.isFocused}")
        }
)
Run Code Online (Sandbox Code Playgroud)

第三次 BackHandler 工作正常。只是用它来测试,我在这里不应该需要它,它预计在第一次点击后退按钮后焦点会丢失

android android-jetpack-compose android-jetpack-compose-text

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

如何更改 JetpackCompose 上文本的内容描述

如何将 Jetpack Compose 上 TalkBack 上要读取的默认文本内容描述更改为我想要的任何文本?

android talkback android-jetpack-compose android-jetpack-compose-text

19
推荐指数
1
解决办法
5729
查看次数

Jetpack Compose 中的可扩展文本

所以我使用Text()像这样的可组合项:

Text(
    text = "this is some sample text that is long and so it is 
            ellipsized",
    maxLines = 1,
    overflow = TextOverflow.Ellipsis
)
Run Code Online (Sandbox Code Playgroud)

并且它正确地省略了文本:

在此输入图像描述

问题是我想要See More在省略号末尾有一个标签,提示用户展开可见的文本框。我该如何添加呢?

在此输入图像描述

android kotlin android-jetpack-compose android-jetpack-compose-text

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

Android Jetpack Compose TextField 禁用键盘自动建议

我正在寻找一种使用 TextField Composable 禁用键盘自动建议的方法。

在大约 4 个月前的 Android 时代,使用 EditText 您可以执行类似的操作,将 inputType 设置为textNoSuggestions|textVisiblePassword

<EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textNoSuggestions|textVisiblePassword" />
Run Code Online (Sandbox Code Playgroud)

我在这里使用两种 inputTypes,因为并非所有键盘都支持该textNoSuggestions字段。

有没有办法用 Jetpack Compose 来做到这一点TextField?我没有看到他们有任何KeyboardOptions模仿此功能的东西。

android android-jetpack-compose android-compose-textfield android-jetpack-compose-text

19
推荐指数
1
解决办法
4970
查看次数

Android Jetpack Compose:如何显示字符串资源中的样式文本

我的字符串中有一个strings.xml针对不同语言进行本地化的字符串。每个本地化字符串都使用 Html 标签进行样式设置。

使用 Android TextView,我可以通过读取字符串资源来很好地显示样式文本。

考虑到 Jetpack Compose 目前(1.0.0-rc02)不支持 Html 标签,我尝试在以下官方文档TextView中使用可组合项: https ://developer.android.com/jetpack/compose/interop/interop-apis#views-in-composeAndroidView

我尝试过的示例:

@Composable
fun StyledText(text: String, modifier: Modifier = Modifier) {
    AndroidView(
            modifier = modifier,
            factory = { context -> TextView(context) },
            update = {
                it.text = HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_COMPACT)
            }
    )
}
Run Code Online (Sandbox Code Playgroud)

文件中的文本strings.xml

<string name="styled_text">Sample text with <b>bold styling</b> to test</string>
Run Code Online (Sandbox Code Playgroud)

但是,使用stringResource(id = R.string.styled_text)提供的文本不带Html 标记。

有没有办法在 Jetpack Compose 中使用 Html 样式显示字符串资源中的文本? …

android kotlin android-jetpack-compose android-jetpack-compose-text

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

当导航到 jetpack compose 中的可组合项时,如何自动将焦点请求到文本字段

我希望当用户导航到可组合项时,通过自动请求焦点放在 jetpack compose 中的文本字段上来弹出键盘。截至目前,这是我尝试过的,但似乎不起作用

val feedbackContent = remember { mutableStateOf(TextFieldValue()) }
val focusRequester = remember { FocusRequester() }

OutlinedTextField(
                modifier = Modifier
                    .clickable {
                        focusRequester.requestFocus()
                    }
                    .fillMaxWidth()
                    .focusRequester(focusRequester)
                    .focusable()
)
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose android-jetpack-compose-text

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