标签: android-jetpack-compose-text

Jetpack Compose 中可调整大小的 BasicTextField

有没有办法在 Jetpack Compose 中生成可调整大小的 BasicTextField,以便在用户输入或删除字符时其宽度能够包裹文本大小?他们已经解决了 flutter 的类似问题,但我没有找到如何为 Compose 解决这个问题。 Flutter - 如何使 TextField 宽度适合其文本(“换行内容”)

var text: String by rememberSaveable { mutableStateOf("") }
BasicTextField(
   value = text,
   onValueChange = {
       text = it
   },
   modifier = Modifier.wrapContentWidth()
)
Run Code Online (Sandbox Code Playgroud)

不幸的是,wrapContentWidth()在这里不起作用。

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

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

Jetpack compose 在文本中显示 html

我有一个包含 html 的字符串,如何在 Jetpack 撰写文本中显示它?

在 TextView 中,我会使用 Spanned 并执行以下操作:

TextView.setText(Html.fromHtml("<p>something", HtmlCompat.FROM_HTML_MODE_LEGACY)
Run Code Online (Sandbox Code Playgroud)

如何使用 Jetpack compose 中的文本执行此操作?

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

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

Jetpack Compose 如何删除 EditText/TextField 下划线并保持光标?

嗨,我需要删除我的 TextField 中的下划线,因为当 TextField 是圆形时它看起来很难看。我已经将 activeColor 设置为透明,但是光标不会显示(因为它是透明的)。如何删除下划线/activeColor 并保留光标?

在此处输入图片说明

这是我的循环文本字段代码:

@Composable
fun SearchBar(value: String) {
    // we are creating a variable for
    // getting a value of our text field.
    val inputvalue = remember { mutableStateOf(TextFieldValue()) }

    TextField(
            // below line is used to get
            // value of text field,
            value = inputvalue.value,

            // below line is used to get value in text field
            // on value change in text field.
            onValueChange = { inputvalue.value = it },

            // below line …
Run Code Online (Sandbox Code Playgroud)

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

11
推荐指数
1
解决办法
2769
查看次数

如何在 Jetpack Compose Desktop 中加载字体?

在 Android 版 Jetpack Compose 中,您可以执行以下操作:


val fontFamily = FontFamily(
    Font(
        resId = R.font.my_font_400_regular,
        weight = FontWeight.W400,
        style = FontStyle.Normal
    ),
    Font(
        resId = R.font.my_font_400_italic,
        weight = FontWeight.W400,
        style = FontStyle.Italic
    )
)


Run Code Online (Sandbox Code Playgroud)

但对于桌面版,文件结构不同,我无法访问,R.font.my_font_400_regular因为“R”是 Android 资源功能。

kotlin android-jetpack-compose-text compose-desktop

11
推荐指数
2
解决办法
4468
查看次数

如何在jetpack中添加ImageSpan撰写文本

我们知道, JetpackCompose 中的AnnotatedString提供了Android 的 SpannedString的一些 API 。

但我没有找到任何方法/解决方法将ImageSpan内联到文本(使用 AndroidView 除外)

android spannablestring spannable android-jetpack-compose android-jetpack-compose-text

11
推荐指数
1
解决办法
8912
查看次数

无法在 LazyColumn 中使用屏幕底部的 TextField

我有这个代码

setContent {
  val items = mutableListOf<Int>().apply {
    (1..100).forEach { add(it) }
  }
  LazyColumn {
    items(items) { item ->
      TextField("$item", {})
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

android:windowSoftInputMode="adjustResize"我的AndroidManifest.xml.

如果我单击TextField列表顶部的 a,我可以正常输入文本。

如果我单击TextField屏幕底部附近的 ,键盘会立即出现,然后很快消失,并阻止我输入文本。

TextField当位于屏幕底部时如何输入文字?谢谢!

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

11
推荐指数
1
解决办法
1577
查看次数

Jetpack Compose Text 超链接文本的某些部分

如何将超链接添加到 Text 组件文本的某些部分?

随着buildAnnotatedString我可以设置链接部分蓝色并带有下划线,如下面的图像,但我怎么也可以把这一节变成链接?

在此处输入图片说明

   val annotatedLinkString = buildAnnotatedString {
        val str = "Click this link to go to web site"
        val startIndex = str.indexOf("link")
        val endIndex = startIndex + 4
        append(str)
        addStyle(
            style = SpanStyle(
                color = Color(0xff64B5F6),
                textDecoration = TextDecoration.Underline
            ), start = startIndex, end = endIndex
        )
    }

    Text(
        modifier = modifier
            .padding(16.dp)
            .fillMaxWidth(),
        text = annotatedLinkString
    )
Run Code Online (Sandbox Code Playgroud)

我也可以,Spanned但有什么方法可以使用它Text吗?

val str: Spanned = HtmlCompat.fromHtml(
    "<a href=\"http://www.github.com\">Github</a>", HtmlCompat.FROM_HTML_MODE_LEGACY
)
Run Code Online (Sandbox Code Playgroud)

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

10
推荐指数
8
解决办法
2503
查看次数

如何在jetpack compose中突出显示文本中的特定单词?

我想知道如何在 jetpack compose 中突出显示文本的特定部分。我试过Html.fromHtml()这样

Text(text = Html.fromHtml(" <font color='red'> Hello </font> World").toString())
Run Code Online (Sandbox Code Playgroud)

但这没有用。有什么办法可以在撰写中做到这一点吗?

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

10
推荐指数
1
解决办法
6192
查看次数

无法在 Material Design 3 中使用 LocalContentAlpha 更改文本强调

目前,我正在将我的一个应用程序迁移到 Material Design 3,该应用程序完全使用 Jetpack Compose 用 Kotlin 编写。

在使用 Material Design 2 时,我可以使用下面的代码更改文本的重点。

CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) {
                Text(
                    text = "Hello, world",
                    style = MaterialTheme.typography.h6,
                    fontWeight = FontWeight.SemiBold,
                )
            }
Run Code Online (Sandbox Code Playgroud)

但是,相同的代码不适用于 Material Design 3,并且文本具有默认强调。另外,我在Material Design 3中找不到相关功能。我想知道是否有任何官方方法可以达到相同的效果。

android android-jetpack-compose android-jetpack-compose-text material-you material-design-3

10
推荐指数
2
解决办法
2889
查看次数

如何在jetpack compose中创建带掩码的文本字段输入?

我需要在 jetpack compose 中使用一个与如下掩码配合使用的文本字段:NNNNN-NNN其中 N 是从 0 到 9 的整数。我需要我的可组合函数在以下位置包含此掩码OutlinedTextField

@Composable
private fun EditTextField(
    labelText: String,
    value: String,
    keyboardType: KeyboardType = KeyboardType.Text,
    onValueChanged: (String) -> Unit
) {
    OutlinedTextField(
        modifier = Modifier.padding(top = 8.dp),
        label = { Text(text = labelText) },
        keyboardOptions = KeyboardOptions(keyboardType = keyboardType),
        value = value,
        onValueChange = onValueChanged
    )
}
Run Code Online (Sandbox Code Playgroud)

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

9
推荐指数
2
解决办法
9224
查看次数