当前位置: 首页 > news >正文

服装模板网站设备免费做网站推广

服装模板网站,设备免费做网站推广,溧阳网站建设公司,网站建设的开题报告1. 效果图 2. 下拉加载的实现RefreshIndicator 在Flutter官方sdk中给我们提供了下拉刷新的组件RefreshIndicator。 // 显示内容列表Widget _showNewsListWidget() {if (_newsDataList.isNotEmpty) {// RefreshIndicator 来实现下拉加载的功能return RefreshIndicator(onRefr…1. 效果图 2. 下拉加载的实现RefreshIndicator 在Flutter官方sdk中给我们提供了下拉刷新的组件RefreshIndicator。 // 显示内容列表Widget _showNewsListWidget() {if (_newsDataList.isNotEmpty) {// RefreshIndicator 来实现下拉加载的功能return RefreshIndicator(onRefresh: () async {print(下拉加载);// 网络数据的请求_getNewDataRequest();},child: ListView.builder(itemCount: _newsDataList.length,itemBuilder: (context, index) {return Column(children: [ListTile(title: Text(_newsDataList[index][title]),onTap: () {Navigator.of(context).push(MaterialPageRoute(builder: (context) NewsdetailDemo(cid: _newsDataList[index][aid])),);},)],);}, ));} else {// loadingreturn Center(child: CircularProgressIndicator(),);}}3. 上拉加载的实现 flutter是没有提供上拉分页加载更多的组件但是在Flutter ListView中有一个ScrollController组件它就是专门来控制ListView滑动事件在 这里我们可以根据ListView的位置来判断是否滑动到了底部来做加载更多的处理。 上拉分页加载更多主要通过ListView监听 ScrollController 实现 _scrollController.position.pixels 滚动的距离 _scrollController.position.maxScrollExtent 总距离 核心代码就是在 initState方法中添加监听 _scrollController ScrollController(); //listview的控制器_scrollController.addListener((){double scrollOffsetY _scrollController.position.pixels;double scrollContentHeight _scrollController.position.maxScrollExtent;if (scrollOffsetY scrollContentHeight 20) { print(上拉加载更多);_getNewDataRequest();}});在ListView中的controller中 关联_scrollController, 代码如下 ListView.builder(// controller 关联_scrollControllercontroller: _scrollController,itemCount: _newsDataList.length,itemBuilder: (context, index) {return Column();}))4. 实现列表上下拉加载的完整代码 import dart:convert; import package:demoapp/Demo/NewsDemo/NewsDetail_demo.dart; import package:dio/dio.dart; import package:flutter/material.dart;class NewsDemo extends StatefulWidget {const NewsDemo({super.key});overrideStateNewsDemo createState() _NewsDemoState(); }class _NewsDemoState extends StateNewsDemo {final ScrollController _scrollController ScrollController();List _newsDataList [];int _page 1;bool _isLoadingData false;bool _hasMoreData true;// 获取网络请求的数据void _getNewDataRequest() async {if (_isLoadingData true ) {print(数据加载中请勿重新加载);return;}if (_hasMoreData false) {print(没有更多的数据了);return;}_isLoadingData true;var apiUri https://www.phonegap100.com/appapi.php?agetPortalListcatid20page$_page;print(apiUri $apiUri);final response await Dio().get(apiUri);List resultList json.decode(response.data)[result];setState(() {print(数据请求成功);if (_page 1) {_newsDataList resultList;} else {_newsDataList.addAll(resultList);}_isLoadingData false;if (resultList.isNotEmpty) {_page 1;}if (resultList.length 20) {_hasMoreData false;}});}// cell 底部视图的设置Widget _newsListCellBottomWidget(int index) {if (index _newsDataList.length - 1) {if (_hasMoreData) {return CircularProgressIndicator();} else {return Text(---我也是有底线的---);}} else {return Divider();}}// 显示内容列表Widget _showNewsListWidget() {if (_newsDataList.isNotEmpty) {// RefreshIndicator 来实现下拉加载的功能return RefreshIndicator(onRefresh: () async {print(下拉加载);_page 1;_hasMoreData true;_getNewDataRequest();},child: ListView.builder(controller: _scrollController,itemCount: _newsDataList.length,itemBuilder: (context, index) {return Column(children: [ListTile(title: Text(_newsDataList[index][title]),onTap: () {Navigator.of(context).push(MaterialPageRoute(builder: (context) NewsdetailDemo(cid: _newsDataList[index][aid])),);},),_newsListCellBottomWidget(index)],);}, ));} else {return Center(child: CircularProgressIndicator(),);}}overridevoid initState() {super.initState();_scrollController.addListener((){double scrollOffsetY _scrollController.position.pixels;double scrollContentHeight _scrollController.position.maxScrollExtent;if (scrollOffsetY scrollContentHeight 20) { print(上拉加载更多);_getNewDataRequest();}});_getNewDataRequest();}overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text(模拟新闻列表上下拉加载 加载html的数据),),body: _showNewsListWidget(),);} }5. 加载 Html 的数据 第三方插件flutter_widget_from_html_core: ^0.16.0引入头文件 import package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart;使用代码 return HtmlWidget(xxxx Html 的数据,onTapImage: (imageMetadata) {print(imageMetadata);},onTapUrl: (url) {print(url);return true;},);6. 实现加载html的数据完整代码 import dart:convert; import package:dio/dio.dart; import package:flutter/material.dart; import package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart;class NewsdetailDemo extends StatefulWidget {final String cid;const NewsdetailDemo({super.key, required this.cid});overrideStateNewsdetailDemo createState() _NewsdetailDemoState(); }class _NewsdetailDemoState extends StateNewsdetailDemo {List _resultDetailList [];// 获取详情的数据void _getNewsDetailRequest() async {String apiUri https://www.phonegap100.com/appapi.php?agetPortalArticleaid${widget.cid};final response await Dio().get(apiUri);final result json.decode(response.data)[result];setState(() {_resultDetailList result;});}// 内容视图Widget _newsDetailWidget() {if (_resultDetailList.isNotEmpty) {Map resultInfo _resultDetailList.isNotEmpty ? _resultDetailList[0] : {};return Padding(padding: EdgeInsets.all(10),child: ListView(children: [Text(resultInfo[title], textAlign: TextAlign.center, style: TextStyle(fontSize: 24),),SizedBox(height: 20),HtmlWidget(resultInfo[content],onTapImage: (imageMetadata) {print(imageMetadata);},onTapUrl: (url) {print(url);return true;},)],),);} else {return Center(child: CircularProgressIndicator());}}overridevoid initState() {super.initState();_getNewsDetailRequest();}overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text(详情),),body: _newsDetailWidget(),);} }
http://www.hkea.cn/news/14458285/

相关文章:

  • 中国住房和城乡建设部建造师网站大庆市让胡路区规划建设局网站
  • 常平东莞网站设计一级消防工程师考试条件
  • 遥控器外壳设计网站推荐产品推广ppt
  • 东莞外贸网站建设公司江苏省建设信息网站
  • 养生网站设计开公司需要什么手续和证件
  • 软件企业公司网站模板下载什么网站可做浏览器首页
  • 如何在自己的网站上做直播网站开发ppt
  • 关于绿色环保网站的建设历程建购物网站 教程
  • 国外视频设计网站西安比较好的软件公司
  • 加盟产品网站建设方案宁夏建网站报价
  • 河南省建设监理协会官方网站东莞效果好的网站建设
  • 公司注册网站需要什么条件开发工具里的选项都是灰色的
  • 做网站广告送报纸广告wordpress tag list
  • 广州大石附近做网站的公司dede本地搭建好网站后台密码和用户名是什么
  • 如何制作一个php网站源码新闻发布会新闻通稿
  • 凯发网站重庆建设工程信息网官网安全监督
  • 做家常菜的网站哪个好上海企业联系方式
  • 360网站做不了网银怎么办小程序流量点击推广平台
  • 食品企业网站建设方案北京信息港
  • 56m做图片视频的网站是什么电商网站建站报价
  • 阿里巴巴的网站是自己做的吗wordpress搭建企业网站思路
  • 深圳福田区网站建设wordpress文章数量
  • 乐清网站制作哪家好中煤第五建设有限公司网站
  • 网站建设夬金手指排名壹柒网站开发经验简历
  • 新乡谷雨网络公司做的网站怎么样他达拉非片
  • 网站开发方法 优帮云cm在线设计平台
  • 南京专门做网站济南助企网站建设公司怎么样
  • 做网站还是博客中国交通建设集团有限公司招聘
  • 广州网站推广网站注册登录
  • 海尔官网 网站建设的目标欢迎进入中国建设银行网站