flutter 实现多布局列表的示例代码
闲来无事,写个玩安卓的首页,实现多布局、banner的效果。其中涉及知识点侧滑,pageview切换页面,页面跳转传值及回调数据(在侧滑里)。这些都是基于自己学习做的demo。
当然还有很多瑕疵需要完善。
先看效果:
这里主要讲解多布局,所以其他功能可以参考github
https://github.com/chentaishan/flutter_app
多布局功能代码:
@override voidinitState(){ //TODO:implementinitState super.initState(); //获取网络数据一个banner一个列表 initBannerData(); initHomeList(); } @override Widgetbuild(BuildContextcontext){ WidgetitemColor=Divider( color:Colors.blue, ); WidgetnullColor=Divider( color:Colors.white, ); returnListView.separated( itemCount:_homeListBeanEntity.data.datas.length, itemBuilder:(BuildContextcontext,intindex){ //根据规则,抽取banner方法和listitem return_bannerBeanData!=null&&_bannerBeanData.data.length>0&&index==0 ?bannerItem(_bannerBeanData) :listItem(_homeListBeanEntity,index); }, separatorBuilder:(BuildContextcontext,intindex){ returnindex>0?itemColor:nullColor; }, ); }
voidinitBannerData()async{ result=awaitgetNetWorkData("https://www.wanandroid.com/banner/json"); print("list="+result); if(result.toString().length>0){ BannerBeanEntitybannerBeanEntity= BannerBeanEntity.fromJson(json.decode(result)); if(bannerBeanEntity!=null){ setState((){ _bannerBeanData=bannerBeanEntity; }); } } } getNetWorkData(Stringurl)async{ varuri=Uri.parse(url); HttpClienthttpClient=newHttpClient(); HttpClientRequestrequest=awaithttpClient.getUrl(uri); HttpClientResponsehttpClientResponse=awaitrequest.close(); varstr=awaithttpClientResponse.transform(utf8.decoder).join(); print(httpClientResponse.toString()); returnstr; } voidinitHomeList()async{ result=awaitgetNetWorkData("https://www.wanandroid.com/article/list/0/json"); print("list="+result); if(result.toString().length>0){ HomeListBeanEntityhomeListBeanEntity= HomeListBeanEntity.fromJson(json.decode(result)); if(homeListBeanEntity!=null){ setState((){ _homeListBeanEntity=homeListBeanEntity; }); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。