首页 > 其他 > 详细

flutter TextField 弹出复制是英文的问题

时间:2020-04-17 22:49:44      阅读:665      评论:0      收藏:0      [点我收藏+]
1.在 pubspec.yaml 中集成 flutter_localizations;
dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
注意这个会和intl冲突
2.在 MaterialApp 中设置本地化代理和支持的语言类型; return MaterialApp( localizationsDelegates: [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ], supportedLocales: [ const Locale(‘zh‘, ‘CN‘), const Locale(‘en‘, ‘US‘), ] }

 

接着报了一个出错:长按报错The getter ‘cutButtonLabel‘ was called on null
新建一个dart文件CupertinoLocalizationsDelegate
import ‘package:flutter/foundation.dart‘ show SynchronousFuture;
import ‘package:flutter/cupertino.dart‘;

class CupertinoLocalizationsDelegate
extends LocalizationsDelegate<CupertinoLocalizations> {
const CupertinoLocalizationsDelegate();

@override
bool isSupported(Locale locale) =>
<String>[‘en‘, ‘zh‘].contains(locale.languageCode);

@override
SynchronousFuture<_DefaultCupertinoLocalizations> load(Locale locale) {
return SynchronousFuture<_DefaultCupertinoLocalizations>(
_DefaultCupertinoLocalizations(locale.languageCode));
}

@override
bool shouldReload(CupertinoLocalizationsDelegate old) => false;
}

class _DefaultCupertinoLocalizations extends CupertinoLocalizations {
_DefaultCupertinoLocalizations(this._languageCode)
: assert(_languageCode != null);

final DefaultCupertinoLocalizations _en =
const DefaultCupertinoLocalizations();
final String _languageCode;

final Map<String, Map<String, String>> _dict = <String, Map<String, String>>{
‘en‘: <String, String>{
‘alert‘: ‘Alert‘,
‘copy‘: ‘Copy‘,
‘paste‘: ‘Paste‘,
‘cut‘: ‘Cut‘,
‘selectAll‘: ‘Select all‘,
‘today‘: ‘today‘
},
‘zh‘: <String, String>{
‘alert‘: ‘警告‘,
‘copy‘: ‘复制‘,
‘paste‘: ‘粘贴‘,
‘cut‘: ‘剪切‘,
‘selectAll‘: ‘选择全部‘,
‘today‘: ‘今天‘
}
};

@override
String get alertDialogLabel => _get(‘alert‘);

@override
String get anteMeridiemAbbreviation => _en.anteMeridiemAbbreviation;

@override
String get postMeridiemAbbreviation => _en.postMeridiemAbbreviation;

@override
String get copyButtonLabel => _get(‘copy‘);

@override
String get cutButtonLabel => _get(‘cut‘);

@override
String get pasteButtonLabel => _get(‘paste‘);

@override
String get selectAllButtonLabel => _get(‘selectAll‘);

@override
DatePickerDateOrder get datePickerDateOrder => _en.datePickerDateOrder;

@override
DatePickerDateTimeOrder get datePickerDateTimeOrder =>
_en.datePickerDateTimeOrder;

@override
String datePickerDayOfMonth(int dayIndex) =>
_en.datePickerDayOfMonth(dayIndex);

@override
String datePickerHour(int hour) => _en.datePickerHour(hour);

@override
String datePickerHourSemanticsLabel(int hour) =>
_en.datePickerHourSemanticsLabel(hour);

@override
String datePickerMediumDate(DateTime date) => _en.datePickerMediumDate(date);

@override
String datePickerMinute(int minute) => _en.datePickerMinute(minute);

@override
String datePickerMinuteSemanticsLabel(int minute) =>
_en.datePickerMinuteSemanticsLabel(minute);

@override
String datePickerMonth(int monthIndex) => _en.datePickerMonth(monthIndex);

@override
String datePickerYear(int yearIndex) => _en.datePickerYear(yearIndex);

@override
String timerPickerHour(int hour) => _en.timerPickerHour(hour);

@override
String timerPickerHourLabel(int hour) => _en.timerPickerHourLabel(hour);

@override
String timerPickerMinute(int minute) => _en.timerPickerMinute(minute);

@override
String timerPickerMinuteLabel(int minute) =>
_en.timerPickerMinuteLabel(minute);

@override
String timerPickerSecond(int second) => _en.timerPickerSecond(second);

@override
String timerPickerSecondLabel(int second) =>
_en.timerPickerSecondLabel(second);

String _get(String key) {
return _dict[_languageCode][key];
}

@override
String get todayLabel => _get("today");
}
使用方法:
localizationsDelegates: [
          //此处
          CupertinoLocalizationsDelegate(),
          GlobalMaterialLocalizations.delegate,
          GlobalWidgetsLocalizations.delegate,
        ],
        supportedLocales: [
          const Locale(‘zh‘),
          const Locale(‘en‘)
        ]);
 

  

 

flutter TextField 弹出复制是英文的问题

原文:https://www.cnblogs.com/wupeng88/p/12722778.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!