Browse Source

优化完善信息页面的焦点管理

ios
王子贤 4 months ago
parent
commit
f185fd1756
1 changed files with 12 additions and 8 deletions
  1. 20
      lib/pages/mine/user_info_page.dart

20
lib/pages/mine/user_info_page.dart

@ -2,6 +2,7 @@ import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:dating_touchme_app/generated/assets.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:dating_touchme_app/controller/mine/user_info_controller.dart';
@ -73,10 +74,10 @@ class UserInfoPage extends StatelessWidget {
}
//
void _showEducationPicker(UserInfoController controller) {
Future _showEducationPicker(UserInfoController controller) async {
final List<String> educationOptions = ['大专以下', '大专', '本科', '硕士及以上'];
showModalBottomSheet(
await showModalBottomSheet(
context: Get.context!,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.only(
@ -163,7 +164,7 @@ class UserInfoPage extends StatelessWidget {
}
//
void _showDatePicker(UserInfoController controller) {
Future _showDatePicker(UserInfoController controller) async {
//
final now = DateTime.now();
final maxDate = DateTime(now.year - 18); // 18
@ -192,7 +193,7 @@ class UserInfoPage extends StatelessWidget {
//
DateTime? selectedDate = initialDate;
showCupertinoModalPopup(
await showCupertinoModalPopup(
context: Get.context!,
builder: (BuildContext context) {
return Container(
@ -249,6 +250,7 @@ class UserInfoPage extends StatelessWidget {
);
}
final FocusNode _blankFocusNode = FocusNode();
@override
Widget build(BuildContext context) {
return GetX<UserInfoController>(
@ -455,9 +457,10 @@ class UserInfoPage extends StatelessWidget {
),
const SizedBox(height: 10),
GestureDetector(
onTap: () {
onTap: () async {
FocusScope.of(context).requestFocus(_blankFocusNode);
// Cupertino日期选择器
_showDatePicker(controller);
await _showDatePicker(controller);
},
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14),
@ -499,9 +502,10 @@ class UserInfoPage extends StatelessWidget {
),
const SizedBox(height: 10),
GestureDetector(
onTap: () {
onTap: () async {
FocusScope.of(context).requestFocus(_blankFocusNode);
//
_showEducationPicker(controller);
await _showEducationPicker(controller);
},
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14),

Loading…
Cancel
Save