app-starlock/lib/mine/mineMultiLanguage/mineMultiLanguage_page.dart
2024-05-18 09:37:50 +08:00

81 lines
2.5 KiB
Dart
Executable File

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;
}
}