使用 XML 创建 UI 时。有一个密码字段选项,其中密码对用户可见。开发人员所要做的就是设置inputType = TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
在 Jetpack Compose 中,可以选择创建 textField()。然后传入visualTransformation = PasswordVisualTransformation()让打字变成点。然而,它不会像 XML 那样预览字母几秒钟,然后才变成点。
想知道是否有一个等效的 jetpack 撰写密码字段的功能,其中密码在变成点之前对用户可见几秒钟。
谢谢
android kotlin android-jetpack-compose android-compose-textfield
对于 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
我开始使用 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,但我认为它在定义 时存在问题TextField。remember {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) 据我了解,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
我正在开发 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
我最近开始转向使用 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
是否可以在 Jetpack Compose 的 TextField 中获得不同的颜色?
类似于Text可组合 with AnnotatedString,但 TextField 不允许AnnotatedString作为输入值。
可与颜色组合的普通文本图像
android kotlin android-textinputlayout android-jetpack-compose android-compose-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
我正在制作一个待办事项应用程序,当我编写待办事项时,我只放置了 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) 我试图使 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,但似乎没有任何效果
如果我将尺寸修改器设置为较小的宽度,它确实会减小宽度,但不再扩展......
有人能够实现这一点吗?