Jetpack Compose 在 TextField 中对齐输入文本

Posted

技术标签:

【中文标题】Jetpack Compose 在 TextField 中对齐输入文本【英文标题】:Jetpack Compose align input text in TextField 【发布时间】:2021-10-01 15:23:21 【问题描述】:

我想使用 Jetpack Compose 中的 TextField 实现类似的行为,就像旧学校 XML 布局中的一样:

<EditText
    android:id="@+id/some_id"
    android:layout_
    android:layout_
    android:gravity="right" /> <!-- or end -->

当我尝试这种方法时:

TextField(value = "", onValueChange = 

, textAlign = TextAlign.End) 

它根本不起作用,因为textAlign 属性在TextField 中不存在。那么TextFieldTextAlign.CenterTextAlign.EndTextAlign.Justify等输入文本如何对齐呢?

【问题讨论】:

【参考方案1】:

您可以通过textStyle 进行操作。

TextField(
    value = "",
    onValueChange = 

    ,
    textStyle = LocalTextStyle.current.copy(textAlign = TextAlign.End)
)

LocalTextStyle.currentTextField的默认值,你可以自己替换。

【讨论】:

谢谢,那为什么Text 不存在textStyleTextField 不存在textAlign Text 中称​​为style。我不确定为什么要采用这种设计,可能是因为不需要经常更改 TextField 的对齐方式。您可以像设置TextField 一样为Text 设置textAlign,但它也有textAlign 会覆盖样式值。

以上是关于Jetpack Compose 在 TextField 中对齐输入文本的主要内容,如果未能解决你的问题,请参考以下文章

Android Jetpack Compose学习—— Jetpack compose基础布局

什么是Jetpack Compose?带你走进Jetpack Compose~

jetpack compose 接收返回参数

Android Jetpack Compose学习—— Jetpack compose入门

Android Jetpack Compose学习—— Jetpack compose入门

Jetpack All In Compose ?看各种Jetpack库在Compose中的使用