Browse Source

重写时间选择器基类

ios
王子贤 3 months ago
parent
commit
5d4d2fdf78
3 changed files with 191 additions and 3 deletions
  1. 185
      lib/extension/my_cupertino_localizations.dart
  2. 3
      lib/main.dart
  3. 6
      lib/pages/mine/edit_info_page.dart

185
lib/extension/my_cupertino_localizations.dart

@ -0,0 +1,185 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter/cupertino.dart';
class MyCupertinoLocalizations implements CupertinoLocalizations {
final CupertinoLocalizations _base;
MyCupertinoLocalizations(this._base);
//
@override
String datePickerMonth(int monthIndex) => '$monthIndex月';
// zh_CN
@override
DatePickerDateOrder get datePickerDateOrder => _base.datePickerDateOrder;
@override
DatePickerDateTimeOrder get datePickerDateTimeOrder => _base.datePickerDateTimeOrder;
// _base IDE
@override
String get todayLabel => _base.todayLabel;
@override
String get alertDialogLabel => _base.alertDialogLabel;
@override
String get anteMeridiemAbbreviation => _base.anteMeridiemAbbreviation;
@override
String get postMeridiemAbbreviation => _base.postMeridiemAbbreviation;
@override
String get copyButtonLabel => _base.copyButtonLabel;
@override
String get cutButtonLabel => _base.cutButtonLabel;
@override
String get pasteButtonLabel => _base.pasteButtonLabel;
@override
String get selectAllButtonLabel => _base.selectAllButtonLabel;
@override
String get modalBarrierDismissLabel => _base.modalBarrierDismissLabel;
@override
String tabSemanticsLabel({required int tabIndex, required int tabCount}) =>
_base.tabSemanticsLabel(tabIndex: tabIndex, tabCount: tabCount);
@override
String datePickerDayOfMonth(int dayIndex, [int? weekDay]) =>
_base.datePickerDayOfMonth(dayIndex, weekDay);
@override
String datePickerYear(int yearIndex) => _base.datePickerYear(yearIndex);
@override
String datePickerMediumDate(DateTime date) => _base.datePickerMediumDate(date);
@override
String datePickerHour(int hour) => _base.datePickerHour(hour);
@override
String datePickerMinute(int minute) => _base.datePickerMinute(minute);
@override
String? datePickerHourSemanticsLabel(int hour) =>
_base.datePickerHourSemanticsLabel(hour);
@override
String? datePickerMinuteSemanticsLabel(int minute) =>
_base.datePickerMinuteSemanticsLabel(minute);
@override
String get searchTextFieldPlaceholderLabel => _base.searchTextFieldPlaceholderLabel;
@override
String get cancelButtonLabel => _base.cancelButtonLabel;
@override
// TODO: implement backButtonLabel
String get backButtonLabel => throw UnimplementedError();
@override
// TODO: implement clearButtonLabel
String get clearButtonLabel => throw UnimplementedError();
@override
String datePickerStandaloneMonth(int monthIndex) {
// TODO: implement datePickerStandaloneMonth
throw UnimplementedError();
}
@override
// TODO: implement lookUpButtonLabel
String get lookUpButtonLabel => throw UnimplementedError();
@override
// TODO: implement menuDismissLabel
String get menuDismissLabel => throw UnimplementedError();
@override
// TODO: implement noSpellCheckReplacementsLabel
String get noSpellCheckReplacementsLabel => throw UnimplementedError();
@override
// TODO: implement searchWebButtonLabel
String get searchWebButtonLabel => throw UnimplementedError();
@override
// TODO: implement shareButtonLabel
String get shareButtonLabel => throw UnimplementedError();
@override
String timerPickerHour(int hour) {
// TODO: implement timerPickerHour
throw UnimplementedError();
}
@override
String? timerPickerHourLabel(int hour) {
// TODO: implement timerPickerHourLabel
throw UnimplementedError();
}
@override
// TODO: implement timerPickerHourLabels
List<String> get timerPickerHourLabels => throw UnimplementedError();
@override
String timerPickerMinute(int minute) {
// TODO: implement timerPickerMinute
throw UnimplementedError();
}
@override
String? timerPickerMinuteLabel(int minute) {
// TODO: implement timerPickerMinuteLabel
throw UnimplementedError();
}
@override
// TODO: implement timerPickerMinuteLabels
List<String> get timerPickerMinuteLabels => throw UnimplementedError();
@override
String timerPickerSecond(int second) {
// TODO: implement timerPickerSecond
throw UnimplementedError();
}
@override
String? timerPickerSecondLabel(int second) {
// TODO: implement timerPickerSecondLabel
throw UnimplementedError();
}
@override
// TODO: implement timerPickerSecondLabels
List<String> get timerPickerSecondLabels => throw UnimplementedError();
// `=> _base.xxx`
}
class ChineseArabicMonthDelegate extends LocalizationsDelegate<CupertinoLocalizations> {
const ChineseArabicMonthDelegate();
@override
bool isSupported(Locale locale) => locale.languageCode == 'zh';
@override
Future<CupertinoLocalizations> load(Locale locale) async {
// GlobalCupertinoLocalizations.delegate Flutter
//
final CupertinoLocalizations delegate = await GlobalCupertinoLocalizations.delegate.load(locale);
return MyCupertinoLocalizations(delegate);
}
@override
bool shouldReload(ChineseArabicMonthDelegate old) => false;
}

3
lib/main.dart

@ -20,6 +20,8 @@ import 'package:fluwx/fluwx.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'extension/my_cupertino_localizations.dart';
void main() async {
//
FlutterError.onError = (FlutterErrorDetails details) {
@ -94,6 +96,7 @@ void main() async {
///
localizationsDelegates: const [
ChineseArabicMonthDelegate(),
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate, // iOS

6
lib/pages/mine/edit_info_page.dart

@ -564,9 +564,9 @@ class _EditInfoPageState extends State<EditInfoPage> {
)
],
).onTap((){
if(controller.userData.value?.identityCard != null && controller.userData.value?.identityCard != ""){
return;
}
// if(controller.userData.value?.identityCard != null && controller.userData.value?.identityCard != ""){
// return;
// }
_showDatePicker(controller);
}),
],

Loading…
Cancel
Save