加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

Flutter 开发中的一些 Tips

发布时间:2019-06-21 21:46:36 所属栏目:业界 来源:唯鹿lv-2
导读:学习Flutter也有一阵子了。闲着没事,用了公司一个已经凉凉的App设计图来练手。当然了接口不可能用的了,所以都是些死数据,实现效果可以说是很完美了(得到了设计的认可。。。)。当然自己也是边查边写,也借鉴了许多Github上优秀的Flutter项目。现在开源出

InkWell有的叫溅墨效果,有的叫水波纹效果。使用场景是给一些无点击事件的部件添加点击事件时使用(也支持长按、双击等事件),同时你也可以去修改它的颜色和形状。

  1. InkWell( 
  2.   borderRadius: BorderRadius.circular(8.0), // 圆角 
  3.   splashColor: Colors.transparent, // 溅墨色(波纹色) 
  4.   highlightColor: Colors.transparent, // 点击时的背景色(高亮色) 
  5.   onTap: () {},// 点击事件 
  6.   child: Container(), 
  7. ); 

不过有时你会发现并不是包一层InkWell就一定会有溅墨效果。主要原因是溅墨效果是在一个背景效果,并不是覆盖的前景效果。所以InkWell中的child一旦有设置背景图或背景色,那么就会遮住这个溅墨效果。如果你需要这个溅墨效果,有两种方式实现。

(1)包一层 Material,将背景色设置在 Material中的color里。

  1. Material( 
  2.   color: Colors.white, 
  3.   child: InkWell(), 

(2)使用Stack布局,将InkWell放置在上层。这种适用于给图片添加点击效果,比如Banner图的点击。

  1. Stack( 
  2.             children: [ 
  3.               Positioned.fill( 
  4.                 child: Image(), 
  5.               ), 
  6.               Positioned.fill( 
  7.                 child: Material( 
  8.                   color: Colors.transparent, 
  9.                   child: InkWell( 
  10.                     splashColor: Color(0X40FFFFFF), 
  11.                     highlightColor: Colors.transparent, 
  12.                     onTap: () {}, 
  13.                   ), 
  14.                 ), 
  15.               ) 
  16.             ], 
  17.           ) 

8.保持页面状态

比如点击导航栏来回切换页面,默认情况下会丢失原页面状态,也就是每次切换都会重新初始化页面。这种情况解决方法就是PageView与BottomNavigationBar结合使用,同时子页面State中继承AutomaticKeepAliveClientMixin并重写wantKeepAlive为true。代码大致如下:

  1. class _TestState extends State with AutomaticKeepAliveClientMixin{ 
  2.  
  3.   @override 
  4.   Widget build(BuildContext context) { 
  5.     super.build(context); 
  6.     return Container(); 
  7.   } 
  8.    
  9.   @override 
  10.   bool get wantKeepAlive => true; 

9.依赖版本问题

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读