Как я могу реализовать AppTranslations
виджет с флажком ?, Я хочу выбрать один из языков, нажав на поле справа от списка
Я пытаюсь использовать CheckBoxListTilie
, но безуспешно : (
я хочу что-то вроде этого:
код:
class _LanguageSelectorState extends State<LanguageSelector> {
static final List<String> languagesList = application.supportedLanguages;
static final List<String> languageCodesList =
application.supportedLanguagesCodes;
final Map<dynamic, dynamic> languagesMap = {
languagesList[0]: languageCodesList[0],
languagesList[1]: languageCodesList[1],
};
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBar(
backgroundColor: Colors.white,
iconTheme: IconThemeData(color: Colors.black),
title: Text(AppTranslations.of(context).text("settings_language"), style: TextStyle(color: Colors.black, letterSpacing: 1)),
elevation: 0.0,
centerTitle: true,
bottom: PreferredSize(child: Container(color: Colors.black, height: 0.1), preferredSize: Size.fromHeight(0.1),),
),
body: _buildLanguagesList(),
);
}
String selectedLanguage = '';
_buildLanguagesList() {
return ListView.builder(
itemCount: languagesList.length,
itemBuilder: (context, index) {
return _buildLanguageItem(languagesList[index]);
},
);
}
_buildLanguageItem(String language) {
// return ListTile(
// onTap: () {
// selectedLanguage = language;
// application.onLocaleChanged(Locale(languagesMap[language]));
// },
// title: Text(language),
// leading: Icon(Icons.flag),
// );
bool _value = false;
return CheckboxListTile(
title: Text(language),
value: _value,
onChanged: (value) {
_value = value;
application.onLocaleChanged(Locale(languagesMap[language]));
},
controlAffinity: ListTileControlAffinity.trailing,
);
}
}
Сейчас у меня есть только по центру списка: (
спасибо за любую помощь