我在文本字段上方有文本建议芯片视图列表,当用户单击芯片时,我将文本附加到文本字段中。之后我想将光标移动到结束位置。我在 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) 我正在尝试使用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
我有一列 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
我想dp在Text()内容的行与行之间留出更多空间。我找到的唯一属性是letterSpacingof TextStyle,但是,它似乎不是我想要的,我们可以通过某种方式设置它吗?
android android-jetpack-compose android-jetpack-compose-text
我正在使用BasicTextField。
当我开始编辑时,后退按钮变成隐藏键盘按钮(向下箭头)。
第一次按后退按钮会隐藏键盘,但焦点仍然在文本字段上。两者onFocusChanged和BackPressHandler处理程序都没有被调用。
第二次按后退按钮可清除焦点: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
如何将 Jetpack Compose 上 TalkBack 上要读取的默认文本内容描述更改为我想要的任何文本?
android talkback android-jetpack-compose android-jetpack-compose-text
所以我使用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
我正在寻找一种使用 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
我的字符串中有一个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
我希望当用户导航到可组合项时,通过自动请求焦点放在 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