修改选择器样式

This commit is contained in:
czz
2025-06-07 11:44:09 +08:00
parent 36a5b098d5
commit 77152e5d81
16 changed files with 503 additions and 260 deletions

View File

@@ -224,11 +224,11 @@ Future showDateSelectionDialog(BuildContext context,
),
SizedBox(
height: 240.rpx,
child: Row(
children: [
Expanded(
child: Padding(
padding: EdgeInsets.only(right: 30.rpx),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 95.rpx),
child: Row(
children: [
Expanded(
child: getOnePickers(
context,
years,
@@ -237,11 +237,7 @@ Future showDateSelectionDialog(BuildContext context,
onChanged: (_) => updateDays(),
),
),
),
Expanded(
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 30.rpx),
Expanded(
child: getOnePickers(
context,
months,
@@ -250,10 +246,7 @@ Future showDateSelectionDialog(BuildContext context,
onChanged: (_) => updateDays(),
),
),
),
Expanded(
child: Padding(
padding: EdgeInsets.only(left: 30.rpx),
Expanded(
child: getOnePickers(
context,
daysSelect,
@@ -261,8 +254,8 @@ Future showDateSelectionDialog(BuildContext context,
unit: "",
),
),
),
],
],
),
),
),
],

View File

@@ -3,25 +3,28 @@ import 'package:ef/ef.dart';
import 'package:flutter/material.dart';
import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/controller/mh_controller/message_controller.dart';
class LanguagePage extends StatefulWidget {
@override
_LanguagePageState createState() => _LanguagePageState();
}
import 'package:vbvs_app/controller/mh_controller/mh_language_controller.dart';
BoxConstraints? bodysize;
List<String> languageList = [
'简体中文',
'繁體中文',
'English',
];
final Map<String, String> languageMap = {
'简体中文': 'zh_CN',
'繁體中文': 'zh_TW',
'English': 'en_US',
};
class LanguagePage extends GetView<MHLanguageController> {
// @override
// _LanguagePageState createState() => _LanguagePageState();
// }
MHLanguageController controller = Get.find();
BoxConstraints? bodysize;
List<String> languageList = [
'简体中文',
'繁體中文',
'English',
];
final Map<String, String> languageMap = {
'简体中文': 'zh_CN',
'繁體中文': 'zh_TW',
'English': 'en_US',
};
class _LanguagePageState extends State<LanguagePage> {
// class _LanguagePageState extends State<LanguagePage> {
RxBool checkboxValue = false.obs;
RxString? selectLanguage = ''.obs;
@override
@@ -93,14 +96,13 @@ class _LanguagePageState extends State<LanguagePage> {
padding: EdgeInsets.zero,
shrinkWrap: true,
scrollDirection: Axis.vertical,
itemCount: languageList.length,
itemCount: controller.languageList.length,
itemBuilder:
(BuildContext context, int index) {
return _buildItem(
context, index, languageList[index]);
return _buildItem(context, index,
controller.languageList[index]);
},
),
Container(height: bodysize!.maxHeight * 0.12)
],
),
))))),
@@ -108,7 +110,7 @@ class _LanguagePageState extends State<LanguagePage> {
});
}
Widget _buildItem(BuildContext context, int index, String text) {
Widget _buildItem(BuildContext context, int index, MHLanguageModel model) {
return Container(
// width: bodysize!.maxWidth * 1,
height: bodysize!.maxHeight * 0.055,
@@ -116,7 +118,7 @@ class _LanguagePageState extends State<LanguagePage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
text,
model.language_name ?? "",
style: TextStyle(color: Colors.white, fontSize: 30.rpx),
),
Theme(
@@ -132,15 +134,17 @@ class _LanguagePageState extends State<LanguagePage> {
),
child: Obx(() {
return Checkbox(
value: selectLanguage!.value == languageMap[text],
value: controller.selectLanguage.value?.language_code ==
model.language_code,
onChanged: (newValue) async {
if (newValue!) {
selectLanguage!.value = languageMap[
text]!; // Set selectLanguage to the current text value
} else {
selectLanguage!.value =
''; // Clear selection if unchecked
}
controller.selectLanguage.value = model;
// if (newValue!) {
// selectLanguage!.value = languageMap[
// text]!; // Set selectLanguage to the current text value
// } else {
// selectLanguage!.value =
// ''; // Clear selection if unchecked
// }
},
shape: CircleBorder(),
side: BorderSide(

View File

@@ -132,7 +132,7 @@ class _BluetoothState extends State<BluetoothPage> {
_buildMenuButton(
context, '详情', "/devicePeopleInfo"),
_buildMenuButton(
context, '人员资料', "/devicePeopleInfo"),
context, '人员资料', "/peopleInfoPage"),
_buildMenuButton(
context, '房间选择', "/roomPickerPage"),
_buildMenuButton(

View File

@@ -709,7 +709,8 @@ class EditAddressPage extends GetView<AddressController>
children: [
InkWell(
// onTap: () {
// CityPicker.show(
// CityPicker
// .show(
// context:
// context,
// cityPickerListener:

View File

@@ -1,26 +1,26 @@
import 'package:ef/base/widget/flutterflow/FlutterFlowTheme.dart';
import 'package:ef/ef.dart';
import 'package:flutter/material.dart';
import 'package:EasyDartModule/EasyDartModule.dart' as edm;
import 'package:get/get.dart';
import 'package:vbvs_app/common/color/app_uri_status.dart';
import 'package:vbvs_app/common/util/DailyLogUtils.dart';
import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
import 'package:vbvs_app/component/tool/CustomCard.dart';
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
import 'package:vbvs_app/model/api_response.dart';
import '../../controller/mh_controller/muser_info_controller.dart';
class EditUserInfoPage extends GetView<MUserInfoController> {
final scaffoldKey = GlobalKey<ScaffoldState>();
// EditUserInfoPage() {
// UserInfoController controller = Get.find();
// controller.model.user!.tmpHead = controller.model.user!.head;
// }
MUserInfoController controller = Get.find();
@override
Widget build(BuildContext context) {
// UserInfoController controller = Get.find();
MUserInfoController userInfoController = Get.find();
return GestureDetector(
onTap: () => FocusScope.of(context).unfocus(),
child: Container(
@@ -118,8 +118,25 @@ class EditUserInfoPage extends GetView<MUserInfoController> {
),
),
),
Padding(
padding: EdgeInsets.only(top: 44.rpx),
ClickableContainer(
backgroundColor: Colors.transparent,
highlightColor: Colors.transparent,
padding: EdgeInsets.only(top: 44.rpx, bottom: 44.rpx),
onTap: () async {
edm.EasyDartModule.logger
.info("${userInfoController.model.user!}点击上传头像");
DailyLogUtils.writeLog(
"${userInfoController.model.user!}点击上传头像");
ApiResponse apiResponse =
await userInfoController.uploadImg();
TopSlideNotification.show(
context,
text: apiResponse.msg!,
textColor: apiResponse.code == HttpStatusCodes.ok
? themeController.currentColor.sc2
: themeController.currentColor.sc9,
);
},
child: Text(
'点击更换头像',
style:
@@ -127,8 +144,7 @@ class EditUserInfoPage extends GetView<MUserInfoController> {
),
),
Padding(
padding:
EdgeInsets.fromLTRB(60.rpx, 122.rpx, 60.rpx, 0.rpx),
padding: EdgeInsets.fromLTRB(60.rpx, 78.rpx, 60.rpx, 0.rpx),
child: Container(
width: double.infinity,
height: 88.rpx,
@@ -143,7 +159,7 @@ class EditUserInfoPage extends GetView<MUserInfoController> {
alignment: Alignment(0, 0),
child: TextField(
obscureText: false,
keyboardType: TextInputType.number,
keyboardType: TextInputType.text,
textInputAction: TextInputAction.done,
textAlign: TextAlign.center,
style: TextStyle(fontSize: 30.rpx, color: Colors.white),
@@ -153,7 +169,7 @@ class EditUserInfoPage extends GetView<MUserInfoController> {
hintText: "请输入昵称",
hintStyle: TextStyle(color: Colors.white),
border: InputBorder.none,
contentPadding: EdgeInsets.all(0)),
contentPadding: EdgeInsets.only(bottom: 10.rpx)),
onChanged: (value) {
controller.model.user?.nickName = value;
controller.updateAll();
@@ -180,53 +196,32 @@ class EditUserInfoPage extends GetView<MUserInfoController> {
));
}
// Widget getImageWidget(BuildContext context) {
// try {
// UserInfoController controller = Get.find();
// var head = controller.model.user!.tmpHead;
// return InkWell(
// onTap: () {
// controller.uploadImg();
// },
// child: Row(
// children: [
// Container(
// width: 50,
// height: 50,
// decoration: BoxDecoration(
// color: FlutterFlowTheme.of(context).secondaryBackground,
// ),
// child: Container(
// width: 120,
// height: 120,
// clipBehavior: Clip.antiAlias,
// decoration: BoxDecoration(
// shape: BoxShape.circle,
// ),
// child: head == null || head.isEmpty
// ? Image.asset(
// 'assets/images/avatar.png',
// fit: BoxFit.cover,
// )
// : Image.network(
// "${getStorageResourceUrl(head)}",
// fit: BoxFit.cover,
// ),
// ),
// ),
// SizedBox(width: 10),
// Icon(
// Icons.arrow_forward_ios,
// color: Color(0xFF373737),
// size: 12,
// ),
// ],
// ),
// );
// } catch (e) {
// print(e);
// }
// return Container();
// }
Widget getImageWidget(BuildContext context) {
try {
MUserInfoController controller = Get.find();
var head = controller.model.user!.tmpHead;
return Container(
width: 200.rpx,
height: 200.rpx,
child: Container(
clipBehavior: Clip.antiAlias,
decoration: BoxDecoration(
shape: BoxShape.circle,
),
child: head == null || head.isEmpty
? Image.asset(
'assets/img/avatar.png',
fit: BoxFit.cover,
)
: Image.network(
head,
fit: BoxFit.cover,
),
),
);
} catch (e) {
print(e);
}
return Container();
}
}

View File

@@ -107,7 +107,7 @@ class _MinePageState extends State<NewMinePage> {
highlightColor: Colors.transparent,
padding: EdgeInsets.only(right: 11.rpx),
onTap: () {
Get.toNamed("/peopleInfoPage");
},
child: Container(
height: 42.rpx,

View File

@@ -8,6 +8,7 @@ import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
import 'package:vbvs_app/component/tool/CustomCard.dart';
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
import 'package:vbvs_app/controller/mh_controller/mh_language_controller.dart';
class SettingPage extends StatefulWidget {
@override
@@ -15,6 +16,13 @@ class SettingPage extends StatefulWidget {
}
class _SettingPageState extends State<SettingPage> {
MHLanguageController languageController = Get.find();
@override
void initState() {
languageController.initLanuageList();
super.initState();
}
@override
Widget build(BuildContext context) {
return LayoutBuilder(builder: (context, bodySize) {
@@ -247,9 +255,10 @@ class _SettingPageState extends State<SettingPage> {
Obx(() {
return Text(
languageController
.selectLanguage
.value!
.language_name!,
.selectLanguage
.value
?.language_name ??
'简体中文',
style: FlutterFlowTheme.of(
context)
.bodyMedium
@@ -263,16 +272,15 @@ class _SettingPageState extends State<SettingPage> {
),
);
}),
// SvgPicture.asset(
// 'assets/img/icon/arrow_right.svg',
// width: 8.rpx,
// height: 15
// .rpx, // 如果 SVG 中没有固定颜色,可以这样设置
// color: themeController
// .currentColor.sc3,
// ),
].divide(SizedBox(width: 28.rpx)),
SvgPicture.asset(
'assets/img/icon/arrow_right.svg',
width: 8.rpx,
height: 15
.rpx, // 如果 SVG 中没有固定颜色,可以这样设置
color: themeController
.currentColor.sc3,
),
].divide(SizedBox(width: 22.rpx)),
),
],
),
@@ -286,10 +294,7 @@ class _SettingPageState extends State<SettingPage> {
.currentColor.sc21, // 点击时的背景色
padding: EdgeInsetsDirectional.fromSTEB(
0.rpx, 0.rpx, 0.rpx, 0.rpx),
onTap: () {
print('点击了容器');
Get.toNamed("/aboutUsPage");
},
onTap: () {},
child: Container(
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(

View File

@@ -11,6 +11,7 @@ import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/component/tool/CustomCard.dart';
import 'package:vbvs_app/controller/main_bottom/global_controller.dart';
import 'package:vbvs_app/controller/mh_controller/people_info_controller.dart';
import 'package:vbvs_app/pages/common/selectDialog.dart';
class PeopleInfoPage extends StatefulWidget {
@@ -269,7 +270,6 @@ class _PeopleInfoState extends State<PeopleInfoPage> {
),
),
getLine(),
Container(
width: double.infinity,
height: MediaQuery.sizeOf(context).height *