NativeScript TextView:textTransform 无法更新
Posted
技术标签:
【中文标题】NativeScript TextView:textTransform 无法更新【英文标题】:NativeScript TextView :textTransform can't update 【发布时间】:2019-10-24 06:19:42 【问题描述】:我正在使用带有 Vue.js 的 NativeScript。我在 TextView 中有一些文本,我正在尝试使用 textTransform 属性将该文本从“无”更改为“大写”。 这是我的示例代码,here 来自 ns 操场
<template>
<Page class="page">
<ActionBar title="Home" class="action-bar" />
<ScrollView>
<StackLayout>
<TextView editable="false" :fontSize="textFontSize"
:textTransform="upperCaseText">
<FormattedString>
<Span text="This is a text view that uses attributed text. You can use text attributes such as " />
</FormattedString>
</TextView>
<Button text="Make uppercase" @tap="toUpperCase" />
</StackLayout>
</ScrollView>
</Page>
</template>
<script>
export default
data()
return
upperCaseText: "none",
textFontSize: 20
;
,
methods:
toUpperCase()
this.upperCaseText = "uppercase";
this.textFontSize = 67;
;
</script>
当我点击 Make uppercase 按钮时,属性 upperCaseText 从 "none" 更改 改为 “大写”,但 TextView 未注册该更改,并且显示的文本未更改。
我试图从 ns "dom" 更改 upperCaseText 属性,尝试以某种方式触发 TextView 上的事件并“告诉“有些事情发生了变化,但没有成功。
有趣的是,当我尝试更改文本的 fontSize 时。没有问题,fontSize 明显改变了,但textTransform 没有。
为什么会这样?为什么 fontSize 没有问题,而 textTransform 却不行?以及如何让它发挥作用?
【问题讨论】:
【参考方案1】:由于 android 的限制,更新文本转换属性不会对已在 TextField / TextView 上设置的文本产生任何影响。更多信息可以在相关Github issue中找到。
TextField 和 TextView (Android)
在这些控件上设置 text-transform 属性不会改变 里面的文字。如果你想转换你应该做的文本 在将其设置为 text 属性之前。
我不确定您为什么将 TextView 设为只读 (editable="false"),如果您不想要可编辑的 TextView,那么您可以简单地使用应该支持动态更新文本转换的 Label。
【讨论】:
感谢您的快速响应。但由于其他一些原因,我不能使用 Label。将从您发布的链接中阅读此问题。仍然希望找到让它发挥作用的方法。 更改 text-transform 后重置 text 属性可能会起作用 或者您可以创建一个新的 TextView,删除旧的。以上是关于NativeScript TextView:textTransform 无法更新的主要内容,如果未能解决你的问题,请参考以下文章
Nativescript 以编程方式滚动到 ScrollView 的底部