81 lines
2.5 KiB
Dart
81 lines
2.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
import '../../app_settings/app_colors.dart';
|
|
import '../../tools/commonItem.dart';
|
|
import '../../tools/eventBusEventManage.dart';
|
|
import '../../tools/titleAppBar.dart';
|
|
import '../../translations/app_dept.dart';
|
|
import '../../translations/trans_lib.dart';
|
|
import 'mineMultiLanguage_logic.dart';
|
|
|
|
class MineMultiLanguagePage extends StatefulWidget {
|
|
const MineMultiLanguagePage({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
State<MineMultiLanguagePage> createState() => _MineMultiLanguagePageState();
|
|
}
|
|
|
|
class _MineMultiLanguagePageState extends State<MineMultiLanguagePage> {
|
|
final logic = Get.put(MineMultiLanguageLogic());
|
|
final state = Get.find<MineMultiLanguageLogic>().state;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
backgroundColor: AppColors.mainBackgroundColor,
|
|
appBar: TitleAppBar(
|
|
barTitle: TranslationLoader.lanKeys!.multilingual!.tr,
|
|
haveBack: true,
|
|
backgroundColor: AppColors.mainColor),
|
|
body: Column(
|
|
mainAxisAlignment: MainAxisAlignment.start,
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: _children(),
|
|
)
|
|
);
|
|
}
|
|
|
|
List<Widget> _children() {
|
|
List<Widget> l = [];
|
|
// l.add(
|
|
// CommonItem(
|
|
// leftTitel: '跟随系统',
|
|
// rightTitle: "",
|
|
// isHaveLine: true,
|
|
// isHaveDirection: false,
|
|
// isHaveRightWidget: true,
|
|
// rightWidget: Container(),
|
|
// action: () {
|
|
// // logic.changeLanguage(e);
|
|
// }),
|
|
// );
|
|
for (int i = 0; i < state.languages.length; i++) {
|
|
var e = state.languages[i];
|
|
var lanType = ExtensionLanguageType.fromLanguageCode(e.languageCode);
|
|
l.add(
|
|
CommonItem(
|
|
leftTitel: lanType.lanTitle,
|
|
rightTitle: "",
|
|
isHaveLine: true,
|
|
isHaveDirection: false,
|
|
isHaveRightWidget: true,
|
|
rightWidget: Obx(() => state.currentLanguageType.value == lanType
|
|
? Image(
|
|
image: const AssetImage("images/icon_item_checked.png"),
|
|
width: 30.w,
|
|
height: 30.w,
|
|
fit: BoxFit.contain,
|
|
)
|
|
: Container()),
|
|
action: () {
|
|
logic.changeLanguage(e);
|
|
eventBus.fire(ChangeLanguageBlockLastLanguageEvent(lanType.lanTitle));
|
|
}),
|
|
);
|
|
}
|
|
return l;
|
|
}
|
|
}
|