// ignore_for_file: public_member_api_docs, sort_constructors_first import 'package:country_flags/country_flags.dart'; import 'package:flutter/material.dart'; import 'package:translator_lux/entity/language_entity.dart'; languageBottonSheet( context, Function(SelectLanguageItemEntity? selectedLanguage) onSelect) { showModalBottomSheet( context: context, builder: (context) { return Padding( padding: const EdgeInsets.all(8.0), child: Column( children: [ const TextField( decoration: InputDecoration( enabledBorder: OutlineInputBorder(borderSide: BorderSide(width: 2))), ), Expanded( child: ListView.builder( itemBuilder: (context, index) { SelectLanguageItemEntity languageData = LanguageDataEntity.languageData[index]; return ListTile( leading: CountryFlag.fromCountryCode( languageData.countryCode, width: 24, height: 24, shape: const Circle(), ), title: Text(languageData.languageName), onTap: () { Navigator.pop(context, languageData); }, ); }, itemCount: LanguageDataEntity.languageData.length, )) ], ), ); }).then( (selectedLanguage) => onSelect(selectedLanguage), ); } class LanguageDataEntity { static List languageData = [ SelectLanguageItemEntity( countryCode: "cn", languageName: "Chinese", languageCode: "zh-cn"), SelectLanguageItemEntity( countryCode: "us", languageName: "English", languageCode: "en"), ]; }