import 'package:flutter/material.dart'; import 'package:flutter_form_builder/flutter_form_builder.dart'; import 'package:form_builder_validators/form_builder_validators.dart'; import 'package:get/get.dart'; import 'package:loopin/IM/controller/im_user_info_controller.dart'; class NickName extends StatefulWidget { const NickName({super.key}); @override State createState() => _NickNameState(); } class _NickNameState extends State { final _formKey = GlobalKey(); final userInfoController = Get.find(); void _save() async { if (_formKey.currentState?.saveAndValidate() ?? false) { final nickname = _formKey.currentState?.fields['nickname']?.value; final result = await userInfoController.updateNickname(nickname); if (result) { Get.back(); } } } @override Widget build(BuildContext context) { return GestureDetector( onTap: () => FocusScope.of(context).unfocus(), child: Scaffold( backgroundColor: Colors.white, appBar: AppBar( backgroundColor: Colors.white, title: const Text('修改昵称'), actions: [ TextButton( onPressed: _save, child: const Text( '保存', style: TextStyle(color: Colors.red, fontSize: 16), ), ), ], ), body: Padding( padding: const EdgeInsets.all(16), child: FormBuilder( key: _formKey, child: Obx(() { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text( '我的昵称', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold), ), const SizedBox(height: 8), FormBuilderTextField( name: 'nickname', initialValue: userInfoController.nickname.value, decoration: const InputDecoration( hintText: '请输入昵称', border: OutlineInputBorder(), contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 10), ), maxLength: 20, validator: FormBuilderValidators.compose([ FormBuilderValidators.required(errorText: '昵称不能为空'), FormBuilderValidators.maxLength(20, errorText: '昵称不能超过20个字符'), ]), ), const SizedBox(height: 8), const Text( '昵称最长支持20个字符,请文明用语', style: TextStyle(fontSize: 12, color: Colors.grey), ), ], ); })), ), ), ); } }