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-Vue 更新数据对象?

Nativescript 聊天 UI iOS 问题

Nativescript 以编程方式滚动到 ScrollView 的底部

textViewDidChangeSelection 方法认为 textView.text 为空

3.Android 优化布局(解决TextView布局)

Android setError("error") 在 Textview 中不起作用