我将NativeScript与Vue.js结合使用。我在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>
当我单击 设为大写 按钮时,属性 upperCaseText 从“无”更改为更改为“大写” ,但 TextView 不会注册该更改,并且显示的文本不变。
我试图将 upperCaseText 属性从ns“ dom”更改为 TextView 并尝试以某种方式触发事件”,说有些改变,但没有成功。
有趣的是,当我尝试更改文本的 fontSize 时。没问题, fontSize 已明显更改,但 textTransform 未更改。
为什么会这样?为什么 fontSize 没问题,但 textTransform 却不起作用?以及如何使其工作?
答案 0 :(得分:1)
由于Android上的限制,更新文本转换属性将不会对TextField / TextView上已设置的文本产生任何影响。可以在相关的Github issue中找到更多信息。
TextField和TextView(Android)
在这些控件上设置text-transform属性不会更改 里面的文字。如果您要转换文本,则应该执行 在将其设置为文本属性之前。
我不确定您为什么将TextView设为只读(editable =“ false”),如果您不希望使用可编辑的TextView,则可以简单地使用Label,它应支持动态更新文本转换。