#dart #flutter #flutter-layout
#flutter #dart #flutter-макет #заглавные буквы
Вопрос:
Поскольку у нас есть android:textAllCaps="true"
функция в текстовом представлении Android, как мы можем предоставить эту же функцию в текстовом () виджете Flutter?
Я знаю Text('Abc'.toUpperCase())
, это один из способов, но я не хочу делать это вручную. Есть ли какое-либо свойство виджета Text (), которое преобразует его автоматически, или любой виджет, который имеет аналогичное свойство?
Комментарии:
1. Текст (‘Wow’.Прописной ())
2. github.com/flutter/flutter/issues/22695
3. при этом мы вручную преобразуем строку в верхний регистр, есть ли какое-либо свойство text, которое преобразует его автоматически, или какой-либо виджет, свойство которого и похоже на Text()?
4. Извините
Text
, это не позволяет, однако в Android естьTextField
akaEditText
, который имеет свойство capitalization.5. @CopsOnRoad спасибо, что поделились этим, но этот ответ не работает.
Ответ №1:
(ОТРЕДАКТИРОВАНО) Мое решение выглядит так:
Text("apple".toUpperCase())
Returns:
APPLE
Комментарии:
1. Свойство textAllCaps в android xml преобразует весь текст в заглавную букву, а не в первую.
2. Неправильный ответ, с заглавной буквы используется только первая буква слова.
3. Отредактировал ответ
Ответ №2:
Используйте следующую функцию для первого слова в качестве заглавных букв
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. Кажется, что OP предоставил наилучший подход до сих пор в своем первоначальном вопросе: просто используйте
Text('Abc'.toUpperCase())
2. Это не то, что задал вопрос, в котором спрашивалось, как сделать все слово заглавным.
3. Неправильный ответ, с заглавной буквы используется только первая буква слова.
4. Кажется, вопрос изменен, и @campovski уже упоминает в первой строке первое слово как заглавные буквы.
Ответ №3:
Чтобы заглавными буквами текст выглядел следующим образом: «это всего лишь пример» к этому «Это всего лишь пример»,
используйте эту функцию:
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;
}
Вывод: «Это только пример».
Комментарии:
1. Неправильный ответ, с заглавной буквы используется только первая буква слова.
2. @campovski Может быть, ваш текст содержит только одно слово.
3. Я думаю, вы имели в виду, что в моих словах есть только одна буква…
Ответ №4:
просто чтобы упростить функцию ответов перед
String getCapitalizeString(String str) {
String cRet = '';
str.split(' ').forEach((word) {
cRet = "${word[0].toUpperCase()}${word.substring(1).toLowerCase()} ";
});
return cRet.trim();
}
Комментарии:
1. Заданный вопрос о том, чтобы сделать все слово заглавным, а не только первую букву.
2. Неправильный ответ, с заглавной буквы используется только первая буква слова.