Строковый XML файл в Flutter
Привет Я Android-разработчик, новый для флаттера. В тексте строки флаттера прямо устанавливается текстовый виджет поля.
(То есть)
new Text('Hello, How are you?')
Правильно? или мы можем поддерживать всю строку в одном файле и использовать ее.
(То есть)
<string name="name_hint">Hello, How are you?</string>
Это возможно?. Любая помощь будет оценена, спасибо заранее.
Ответы
Ответ 1
Flutter в настоящее время не имеет выделенной ресурсной системы для строк. На данный момент лучше всего хранить текст в классе как статические поля и получать к ним доступ оттуда. Например:
class Strings {
static const String welcomeMessage = "Welcome To Flutter";
}
Затем в вашем коде вы можете получить доступ к своим строкам как таковым:
Text(Strings.welcomeMessage)
источник
Изменить май 19 года:
Там теперь этот пакет, который позволяет вам создавать файлы JSON с вашими строками. Это позволит вам создавать строки для множественного числа, полов и языков и т.д.
Вы можете создать отдельный файл JSON для каждого языка следующим образом:
string_en.json
{
"thanks": "Thanks."
}
string_nl.json
{
"thanks": "Dankjewel."
}
А затем использовать это для доступа к нему
S.of(context).thanks;
Он будет знать, какой язык выбрать, основываясь на языке вашего телефона по умолчанию.
Ответ 2
Вы можете использовать методы, представленные в разделах интернационализации документации, для управления централизованным управлением и переводами строк (если вам нужны переводы)
https://flutter.io/tutorials/internationalization/
Это может быть излишним для простого приложения с несколькими строками.
Ответ 3
Это правильный путь. В flutter вам не нужны файлы .xml
или .css
для управления макетом/материалом.
Все управляется с использованием кода дротика. Что делает все намного проще.
Ответ 4
create "Strings.dart" file and add the below line==>
class Strings
{
static String welcomeScreen="WelCome Page";
static String loadingMessage="Loading Please Wait...!";
}
And then call the file using the below line using the widget
Text(Strings.loadingMessage)
Make sure that the String.dart file has been imported