
上一篇讲到如果解决ios长按输入框报错的问题,但是最终没有达到我们的要求,因为我们想实现中文的提示,那么本篇文章讲讲如何来实现多语言配置;
1首先在pubspecyaml的dependencies下加入这个
flutter_localizations:
sdk: flutter
如图:
2然后在MaterialApp设置一下localizationsDelegates如图:
3写一个类继承一下CupertinoLocalizations,在项目中 我这个类名叫ChineseCupertinoLocalizations(没错,就是localizationsDelegates中的第三个),如图:
上次提到报错的原因就是因为cutButtonLabel,copyButtonLabel,pasteButtonLabel,selectAllButtonLabel 这几个按钮没有实现,所以继承CupertinoLocalizations一定要为这几个按钮赋值,这里是那种语言,那么,赋值就对应那种语言,同时要注意localelanguageCode也要填写,如果你是中文,那么localelanguageCode =='zh';
4在ios工程中,在项目的info设置语言环境
添加 Localization native development region--->china
添加一个Localizations 为array类型的,并且设置值为 Chinese (simplified)
效果图:( 注意:请把手机环境调试成中文的语言环境 )
Android
ios 效果图
我公司用flutter做了一个《柚品生活》的app,感兴趣的朋友可以去看看,Android和ios都已经上架了
最后附上GitHub项目地址 GitHub - hxxsocket/flutter_lg_demo: flutter多语言配置之中文
Flutter 的图标类,它有几个衍生的组件:ImageIcon、IconButton 等。
Icon还可以架加载iconfont(字体图标),这种方式 和相比有如下优势:
使用方法比较简单
为了照顾新手小伙伴,基础讲解里面不会设计比较复杂的东西,后面的深入讲解中再对各方面最深入解析
下一节基础组件之Button
ScreenUtil()是flutter屏幕适配的一个插件,在GitHub上也有一定的人气。也尝试使用过,也能获得较好的体验。
GitHub地址: >
说明:Column中空Text会占一定空间,会影响布局效果,这空间大小跟文字设置的大小有关;建议用Container,SizedBox来替换,一般在动态控制一些view的加载会用到,不需要加载直接返回Container或SizeBox;
说明:早期版本sdk Row和Column 默认的对齐参数MainAxisAlignment和CrossAxisAlignment都为start,现在新版的sdk变化了,CrossAxisAlignment变为center,所以对于频繁使用的 Row和Column,建议写时添加对齐方式,不依赖sdk默认,避免升级sdk大面积修改,也可以直接封装Row和Column;
说明:早期版本sdk字体加粗FontWeight bold为w500,新版本sdk为w700,所以建议封装FontWeight ,有利于界面样式统一,封装如下:
说明:
说明:
说明:
int c;
print(c=5);//如果c为null的话,把5赋值给c
b = value;
如果b为空,则将value赋值给b;否则,b保持不变
expr1 expr2
如果expr1为非空,则返回其值;expr1为空,则计算并返回expr2的值
易错:
正确:
传送门
此控件比较简单,按钮的功能可划分为UI样式与事件回调
这里将几种不同的按钮一起运行,做下对比动图如下:
这里对五种按钮进行column居中排列如下
Text用于显示简单样式文本,它包含一些控制文本显示样式的一些属性。
TextStyle用于指定文本显示的样式如颜色、字体、粗细、背景等。
TextStyle更多属性设置如下:
如果我们需要对一个Text内容的不同部分按照不同的样式显示,即富文本,这时就可以使用TextSpan,它代表文本的一个“片段”。
如上述,我们当然也可以在上述链接上添加手势事件,后续会提到。
在widget树中,文本的样式默认是可以被继承的,因此,如果在widget树的某一个节点处设置一个默认的文本样式,那么该节点的子树中所有文本都会默认使用这个样式,而DefaultTextStyle正是用于设置默认文本样式的。
举例如下:
主要用到的是appbar中的brightness属性,brightness有两个值可取,分别是Brightnessdark和Brightnesslight
另一种方案是:就是用AnnotatedRegion<SystemUiOverlayStyle>包裹,
发现一种更灵活的办法,如下:
只需要在最外层包裹一下,然后设置状态栏字体颜色就可以了,可以不用appbar,更加灵活
#d窗
oktoast : ^315
#路由
get : ^451
#百度地图定位
flutter_bmflocation : ^200-nullsafety1
#百度地图-基础地图
flutter_baidu_mapapi_map : ^300+2
#百度地图-检索
flutter_baidu_mapapi_search : ^300
#百度地图-计算工具
flutter_baidu_mapapi_utils : ^300
#屏幕自动适应
flutter_screenutil : ^520
#Banner图切换
flutter_swiper_plus : ^204
#网络请求
dio : ^404
dio_cache_interceptor : ^322
pretty_dio_logger : ^120-beta-1
#城市选择器
azlistview : ^200
#本地存储
get_storage : ^203
#权限
permission_handler : ^830
#保存
image_gallery_saver : ^171
# image_save: ^500
#常用工具类
common_utils :
path : plugin/common_utils-202
#选择器
flutter_picker : ^202
#生成二维码
qr_flutter : ^400
#验证码输入框
pin_input_text_field : ^411
# 汉字转拼音
lpinyin : ^203
#多张上传
wechat_assets_picker : ^631
wechat_camera_picker : ^263
#裁剪
image_cropper : ^150
#压缩
flutter_luban : ^0113
#家谱树
graphview : ^111
vector_math : ^210
#行为验证码
steel_crypt : ^300+1
encrypt : ^500
#二维码识别
flutter_qr_reader : ^105
#右上角小图标
badges : ^202
#唤醒系统应用
url_launcher : ^6017
flutter_sms : ^232
#QQ分享
tencent_kit : ^210
flutter_cache_manager : ^330
#微信SDK
fluwx : ^361+4
#支付宝SDK
tobias :
path : plugin/tobias-220
#个推
getuiflut : ^0211
#极光推送
# jpush_flutter:
# path: plugin/jpush_flutter-222
#极光魔链
jmlink_flutter_plugin :
path : plugin/jmlink_flutter_plugin-212
#极光认证
jverify :
path : plugin/jverify-224
#极光统计
janalytics :
path : plugin/janalytics-215
#倒计时
circular_countdown_timer : ^020
#加载中效果
flutter_spinkit : ^510
#APP更新
r_upgrade :
path : plugin/r_upgrade-037+2
#刷新-加载更多
flutter_easyrefresh : ^221
#右上角d出式菜单
custom_pop_up_menu : ^122
#时间轴
timeline_tile : ^200
#虚线边框
dotted_border : ^200
like_button : ^204
#
extended_image : ^601
#九宫格
nine_grid_view : ^200
#时间模糊插件
timeago :
path : plugin/timeago-310
#屏幕截图
screenshot : ^123
#压缩
flutter_image_compress : ^110
#List左滑右滑
flutter_slidable : ^120
#底部伸缩抽屉-针对地图
sliding_up_panel : ^200+1
#键盘高度
flutter_keyboard_size : ^100+4
#JSON动图
lottie : ^122
#城市选择器
city_pickers :
path : plugin/city_pickers-101
#调试工具
path_provider : ^207
#打开HTML
webview_flutter : ^231
#表情
emoji_picker_flutter : ^108
#扇形进度
ai_progress : ^200
#喜欢按钮
tiktok_favorite_gesture : ^100
#获取手机信息
device_info : ^203
#包信息
package_info : ^202
device_apps : ^211
#倒计时
stop_watch_timer : ^131
#发现Android和iOS上的网络(WiFi和移动/蜂窝)连接状态
connectivity_plus : ^220
#从应用程序打开iOS和Android手机设置。
app_settings : ^411
#日志上报
sentry_flutter : ^612
#后退拦截
back_button_interceptor : ^502
#视频播放器
better_player : ^0081
#APP启动图
flutter_native_splash : ^204
#JSON-TO-MAPPER
dart_json_mapper : ^2117
#HTML展示
flutter_html : ^300-alpha2
#XD to Flutter
adobe_xd : ^201
flutter_svg : ^103
#APPBAR背景色渐变
new_gradient_app_bar : ^020
#音频播放
flame_audio : ^100
#入门介绍页
intro_slider : ^303
#键盘
keyboard_actions : ^345
emoji_keyboard_flutter : ^127
#单选选择框
flutter_pickers : ^219
本次主要是记录Fultter Theme主题的设备与AppBar中的一些属性的使用及说明。目前项目开发有了四个界面。前期主题没太注意,今天看来要好好总结一下近期所学。
首先,Android主题沉浸式设置,Flutter篇:
根据字面意思就能看出来是对状态懒得设置,其中用到了 dart:io 与 flutter/servicesdart 这两个重点Mark一下,有时间深入探究一下用法跟能力。回归正题。
主题数据,其中最常用的是 primarySwatch 、 primaryColor 、 accentColor 。
primarySwatch:UI右下角的FloatingActionButton的颜色就是默认取值MaterialColor,
默认是蓝色的,如果修改成primarySwatch,就会变成这个颜色值。只支持MaterialColor。
primaryColor:顶部导航栏和状态栏的颜色修改,需要用到这个属性,类型 Color。
accentColor:前景色(文本、按钮、覆盖边缘效果等)。
看一下项目中的使用
其中 brightness 主题设置较为关键,它是设置状态栏图标与字体颜色的。
brightness: Brightnessdark 状态栏图标与字体颜色为白色。
brightness: Brightnesslight 状态栏图标与字体颜色为黑色。
iconTheme :设置appbar icon的颜色,appbar中icon的颜色会根据primaryColor的改变来确定自身的颜色,这里可以在iconTheme中指定icon的颜色。
默认不做修改前:
以上就是关于flutter 多语言配置--中文全部的内容,包括:flutter 多语言配置--中文、Flutter(8):基础组件之Icon、flutter-ScreenUtil()等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)