Flutter preference_list PreferenceListRadioItem 使用

7 min read
 Widget _buildBody(BuildContext context) {
    return Container(
      child: PreferenceList(
        children: [
          PreferenceListSection(
            children: [
              for (var appLanguage in kAppLanguages)
                PreferenceListRadioItem(
                  title: LanguageLabel(appLanguage),
                  accessoryView: Container(),
                  value: appLanguage,
                  groupValue: _language,
                  onChanged: (newGroupValue) async {
                    _language = newGroupValue as String?;
                    await context.setLocale(languageToLocale(newGroupValue!));
                    setState(() {});
                  },
                ),
            ],
          ),
        ],
      ),
    );
  }