import 'package:cached_network_image/cached_network_image.dart'; import 'package:chat/data/UserData.dart'; import 'package:chat/data/chat_data_mgr.dart'; import 'package:chat/data/group_data_mgr.dart'; import 'package:chat/home/add_friend.dart'; import 'package:chat/home/group_announcement.dart'; import 'package:chat/home/group_manage_page.dart'; import 'package:chat/models/group_info_model.dart'; import 'package:chat/models/ref_name_provider.dart'; import 'package:chat/utils/MessageMgr.dart'; import 'package:chat/utils/group_member_model.dart'; import 'package:chat/utils/msgHandler.dart'; import 'package:chat/utils/screen.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:oktoast/oktoast.dart'; import 'package:provider/provider.dart'; import '../../data/constants.dart'; import '../../generated/i18n.dart'; import '../../utils/CustomUI.dart'; import '../../utils/FullWithButton.dart'; import '../../utils/app_navigator.dart'; import '../create_group_view.dart'; import 'package:chat/utils/PopUpMenu.dart' as myPop; class TranslationButlerPage extends StatefulWidget { final GroupInfoModel groupInfoModel; TranslationButlerPage({Key key, this.groupInfoModel}) : super(key: key); @override State createState() { return TranslationButlerPageState(); } } class TranslationButlerPageState extends State { int curToLang = 1; int curSourceLang = UserData().language; List langList; @override void initState() { super.initState(); } @override void didChangeDependencies() { super.didChangeDependencies(); langList = [ I18n.of(context).english, I18n.of(context).Vietnamese, I18n.of(context).traditional_Chinese, I18n.of(context).Simplified_Chinese, I18n.of(context).Korean, I18n.of(context).Japanese, ]; } @override void dispose() { // MessageMgr().off('Update Group Info', updateGroupInfo); super.dispose(); } _langPopMenu(bool isSource) { var curIndex = isSource ? curSourceLang : curToLang; return myPop.PopupMenuButton( child: Container( child: Row( children: [ fixedText(langList[curIndex], color: Colors.black, fontSize: 16), Icon(IconData(0xe63b, fontFamily: Constants.IconFontFamily), color: Colors.grey) ], ), ), offset: Offset(0, 100), onSelected: (int index) { if (curIndex != index) { if (isSource) { curSourceLang = index; } else { curToLang = index; } print('更换翻译语言'); setState(() {}); } }, itemBuilder: (BuildContext context) { return List>.generate(langList.length, (int i) { return myPop.PopupMenuItem( child: Container( alignment: Alignment.center, color: Colors.white, padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10), child: Text(langList[i], textScaleFactor: 1.0, maxLines: 1, style: TextStyle( color: i == curIndex ? Colors.blueAccent : Color(AppColors.AppBarColor), fontSize: 14)), ), value: i, ); }); }); } @override Widget build(BuildContext context) { Widget appBar = AppBar( backgroundColor: AppColors.NewAppbarBgColor, title: Text( I18n.of(context).translation_butler, textScaleFactor: 1.0, style: TextStyle(color: AppColors.NewAppbarTextColor), ), // leading: CustomUI.buildCustomLeading(context), centerTitle: true, ); return Scaffold( appBar: appBar, body: SafeArea( child: ListView( children: [ Text( I18n.of(context).translation_butler_tips, textScaleFactor: 1.0, style: TextStyle(color: AppColors.NewAppbarTextColor), ), Text( I18n.of(context).choose_language, textScaleFactor: 1.0, style: TextStyle(color: AppColors.NewAppbarTextColor), ), SizedBox( height: 12, ), Text( I18n.of(context).travel_butler, textScaleFactor: 1.0, style: TextStyle(color: AppColors.NewAppbarTextColor), ), Column( mainAxisSize: MainAxisSize.min, children: [ _langPopMenu(true), SizedBox(width: 10), InkWell( onTap: () { var temp = curSourceLang; curSourceLang = curToLang; curToLang = temp; setState(() {}); }, child: Container( child: Icon( IconData(0xe669, fontFamily: Constants.IconFontFamily), size: 12, ), padding: EdgeInsets.symmetric(vertical: 5, horizontal: 5), ), ), SizedBox(width: 20), _langPopMenu(false), ], ), RaisedButton(color: Colors.blue,child: Text(I18n.of(context).translation_butler_call),onPressed: (){ showToast('呼叫管家${I18n.of(context).translation_butler_call}'); }) ], ), ), ); } }