我在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按钮时,property upperCaseText从"none“更改为"uppercase",但TextView没有注册该更改,所显示的文本也未更改。
我尝试将upperCaseText属性从ns“dom”更改为"dom",尝试以某种方式触发TextView上的事件,并“告知”某些内容发生了更改,但没有成功。
有趣的是,当我尝试更改文本的fontSize时。没有问题,fontSize明显改变了,但textTransform没有改变。
为什么会发生这种情况?为什么fontSize没有问题,但是textTransform不能工作?以及如何让它工作呢?
发布于 2019-06-10 01:08:47
由于Android的限制,更新文本转换属性不会对已经在TextField / TextView上设置的文本产生任何影响。更多信息可以在相关的Github issue中找到。
TextField & TextView (安卓)
在这些控件上设置text-transform属性不会更改其中的文本。如果要转换文本,则应在将其设置为text属性之前进行转换。
我不知道你为什么要把TextView设为只读(editable="false"),如果你不想要一个可编辑的TextView,那么你可以简单地使用一个支持动态更新文本转换的标签。
https://stackoverflow.com/questions/56516387
复制相似问题