加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

让前端开发者失业的技术,Flutter Web初体验

发布时间:2019-05-25 15:34:11 所属栏目:移动互联 来源:腾讯新闻前端团队
导读:Flutter是一种新型的客户端技能。它的最终方针是更换包括险些全部平台的开拓:iOS,Android,Web,桌面;做到了一次编写,多处运行。把握Flutter web也许是Web前端开拓者翻盘的独一机遇。 在前些日子举行的Google IO 2019 年度开拓者大会上,Flutter web作

第二步,在Home类中,是我们要渲染的页面顶导,运用了AppBar组件,它包罗了一个居中的页面问题和居右的搜刮按钮。文本可以像css一样配置外面样式。

  1. class Home extends StatelessWidget { 
  2.   @override 
  3.   Widget build(BuildContext context) { 
  4.     return Scaffold( 
  5.       backgroundColor: Colors.white, 
  6.       appBar: AppBar( 
  7.         backgroundColor: Colors.white, 
  8.         elevation: 0.0, 
  9.         centerTitle: true, 
  10.         title: Text( // 中心文本 
  11.           "下载页", 
  12.           style: 
  13.               TextStyle(color: Colors.black, fontSize: 16.0, fontWeight: FontWeight.w500), 
  14.         ), 
  15. // 搜刮图标及特征 
  16.         actions: <Widget>[  
  17.           Padding( 
  18.             padding: const EdgeInsets.symmetric(horizontal: 20.0), 
  19.             child: Icon( 
  20.               Icons.search, 
  21.               color: Colors.black, 
  22.             ), 
  23.           ) 
  24.         ], 
  25.       ), 
  26. //挪用body渲染类,此处可以添加多个要领挪用 
  27.       body: Stack( 
  28.         children: [ 
  29.             Body()  
  30.         ], 
  31.       ), 
  32.     ); 
  33.   } 

第三步,建设页面主体内容,一张图加多个文本,行使了文本组件和图片组件,页面布局回收了flex机关,因为两个Expanded的Flex值均为1,因此将在两个组件之间均匀分派空间。SizedBox组件相等于一个空盒子,用来配置margin的间隔

  1. class Body extends StatelessWidget { 
  2.   const Body({Key key}) : super(key: key); 
  3.  
  4.   @override 
  5.   Widget build(BuildContext context) { 
  6.     return Row( 
  7.       crossAxisAlignment: CrossAxisAlignment.stretch, 
  8.       mainAxisAlignment: MainAxisAlignment.spaceBetween, 
  9.       children: <Widget>[ 
  10.         Expanded( // 左侧 
  11.           flex: 1, 
  12.           child: Image.asset(// 图片组件 
  13.             "background-image.jpg", // 这是一张在web/asserts/下的配景图 
  14.             fit: BoxFit.contain, 
  15.           ), 
  16.         ), 
  17.         const SizedBox(width: 90.0), 
  18.         Expanded( // 右侧 
  19.           flex:1, 
  20.           child: Column( 
  21.             mainAxisAlignment: MainAxisAlignment.center, 
  22.             crossAxisAlignment: CrossAxisAlignment.start, 
  23.             children: <Widget>[ 
  24.               Text( // 文本组件 
  25.                 "腾讯消息", 
  26.                 style: TextStyle( 
  27.                     color: Colors.black, fontWeight: FontWeight.w600, fontSize: 50.0, fontFamily: 'Merriweather'), 
  28.               ), 
  29.               const SizedBox(height: 14.0),// SizedBox用来增进间距 
  30.               Text( 
  31.                 "腾讯消息是腾讯公司为用户打造的一款全天候、全方位、实时报道的消息产物,为用户提供高效优质的资讯、视频和直播处事。资讯超新超全,内容独家优质,话题评述互动。", 
  32.                 style: TextStyle( 
  33.                     color: Colors.black, fontWeight: FontWeight.w400, fontSize: 24.0, fontFamily: "Microsoft Yahei"), 
  34.                 textAlign: TextAlign.justify, 
  35.               ), 
  36.               const SizedBox(height: 20.0),  
  37.               FlatButton( 
  38.                 onPressed: () {}, // 下载按钮的相应变乱 
  39.                 color: Color(0xFFCFE8E4), 
  40.                 shape: RoundedRectangleBorder( 
  41.                   borderRadius: BorderRadius.circular(16.0), 
  42.                 ), 
  43.                 child: Padding( 
  44.                   padding: const EdgeInsets.all(12.0), 
  45.                   child: Text("点击下载", style: TextStyle(fontFamily: "Open Sans")), 
  46.                 ), 
  47.               ), 
  48.             ], 
  49.           ), 
  50.         ), 
  51.         const SizedBox(width: 100.0), 
  52.       ], 
  53.     ); 
  54.   } 

到此,页面建设竣事,生涯,运行webdev serve,就可以看到结果了。

总结

(编辑:湖南网)

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

热点阅读