当我们在Android的Textview中具有android:textAllCaps="true"
功能时,如何在Flutter的 Text() 中提供相同的功能?
我知道Text('Abc'.toUpperCase())
是一种方法,但我不想手动进行。是否有Text()小部件的任何属性可以自动转换它或具有类似属性的小部件?
答案 0 :(得分:0)
将以下功能用作首字母大写
String getCapitalizeString({String str}) {
if (str.length <= 1) { return str.toUpperCase(); }
return '${str[0].toUpperCase()}${str.substring(1)}';
}
使用:
Text(this.getCapitalizeString(str: listObj[position]);
答案 1 :(得分:0)
您可以使用 TextFeild
适用于 Android、iOS、Web、macOS、Windows 和 Linux
您可以实现自定义 TextInputFormatter
class UpperCaseTextFormatter extends TextInputFormatter {
@override
TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
return TextEditingValue(
text: newValue.text?.toUpperCase(),
selection: newValue.selection,
);
}
}
用法:
TextField(
inputFormatters: [
UpperCaseTextFormatter(),
]
)
完整示例 GitHub
答案 2 :(得分:-1)
将这样的文本大写:“这仅是示例”,“这仅是示例”,
使用此功能:
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;
}
OutPut:“这仅是示例”。
答案 3 :(得分:-1)
只是为了简化之前答案的功能
String getCapitalizeString(String str) {
String cRet = '';
str.split(' ').forEach((word) {
cRet += "${word[0].toUpperCase()}${word.substring(1).toLowerCase()} ";
});
return cRet.trim();
}
答案 4 :(得分:-1)
我的解决方案是这样的:
Text(_capitalize("apple"))
而自定义方法是
String _capitalize(String value) {
return value.substring(0, 1).toUpperCase() +
value.substring(1, value.length);
}
返回
Apple