在Android的Textview中,我们有android:textAllCaps="true"功能,那么在Flutter的Text() Widget中如何实现相同的功能呢?
我知道可以使用Text('Abc'.toUpperCase())来手动实现,但我不想手动操作。有没有Text() widget自动转换的属性或类似属性的widget?
在Android的Textview中,我们有android:textAllCaps="true"功能,那么在Flutter的Text() Widget中如何实现相同的功能呢?
我知道可以使用Text('Abc'.toUpperCase())来手动实现,但我不想手动操作。有没有Text() widget自动转换的属性或类似属性的widget?
(编辑过)我的解决方案是这样的:
Text("apple".toUpperCase())
Returns:
APPLE
使用以下函数将第一个单词大写
String getCapitalizeString({String str}) {
if (str.length <= 1) { return str.toUpperCase(); }
return '${str[0].toUpperCase()}${str.substring(1)}';
}
使用:
Text(this.getCapitalizeString(str: listObj[position]);
Text('Abc'.toUpperCase())
。 - Kirill Karmazin将文本像这样转换为首字母大写的形式:"this is only a example" 转换为 "This Is Only A Example",
请使用此函数:
firstCharacterUpper(String text) {
List arrayPieces = List();
String outPut = '';
text = 'this is only a example'; // This is not necessary, is only for the example. The text here is that one is passed in parameter.
text.split(' ').forEach((sepparetedWord) {
arrayPieces.add(sepparetedWord);
});
arrayPieces.forEach((word) {
word =
"${word[0].toString().toUpperCase()}${word.toString().substring(1)} ";
outPut += word;
});
return outPut;
}
输出:'这只是一个例子'。
只是为了简化之前答案的函数
String getCapitalizeString(String str) {
String cRet = '';
str.split(' ').forEach((word) {
cRet += "${word[0].toUpperCase()}${word.substring(1).toLowerCase()} ";
});
return cRet.trim();
}