From b901995bd341768ce4c78dc19d28ff4d138e8a1f Mon Sep 17 00:00:00 2001 From: w-R <953969641@qq.com> Date: Sat, 11 Jun 2022 10:51:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=83=E5=B1=80=E6=9B=B4=E6=94=B9;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/community/community_child_page.dart | 225 ++++++++++++------------ 1 file changed, 112 insertions(+), 113 deletions(-) diff --git a/lib/community/community_child_page.dart b/lib/community/community_child_page.dart index 702480d2..b154c9d4 100644 --- a/lib/community/community_child_page.dart +++ b/lib/community/community_child_page.dart @@ -20,7 +20,8 @@ class CommunityChildPage extends StatefulWidget { final Function onScroll; final Function toRelease; - CommunityChildPage(Key key, this.typeStr,this.onScroll,this.toRelease): super(key: key); + CommunityChildPage(Key key, this.typeStr, this.onScroll, this.toRelease) + : super(key: key); @override State createState() { @@ -28,7 +29,8 @@ class CommunityChildPage extends StatefulWidget { } } -class CommunityChildPageState extends State with AutomaticKeepAliveClientMixin { +class CommunityChildPageState extends State + with AutomaticKeepAliveClientMixin { RefreshController refreshController = RefreshController(); ApiService apiService; int pageNum = 1; @@ -54,68 +56,64 @@ class CommunityChildPageState extends State with AutomaticKe ///动态列表 queryCommunity(String searchKey) async { - if(!isRefresh){ + if (!isRefresh) { isRefresh = true; return; } - if(isLoadingData){ + if (isLoadingData) { return; } - isLoadingData = true; + isLoadingData = true; if (apiService == null) { SharedPreferences value = await SharedPreferences.getInstance(); userId = value.getString('userId'); - apiService = ApiService( - Dio(), - context: context, - token: value.getString("token"), - showLoading: false - ); + apiService = ApiService(Dio(), + context: context, + token: value.getString("token"), + showLoading: false); } - if(isLoadMore){ + if (isLoadMore) { pageNum += 1; isLoadMore = false; - } - else if(searchKey == null)pageNum = 1; + } else if (searchKey == null) pageNum = 1; BaseData> baseData = await apiService.trendList({ - "mid":"", + "mid": "", "onlyFollow": widget.typeStr == "关注" ? true : false, "onlyMe": false, - "pageNum": searchKey == null?pageNum:1, + "pageNum": searchKey == null ? pageNum : 1, "pageSize": 10, - "searchKey": searchKey??"" + "searchKey": searchKey ?? "" }).catchError((error) { - if(searchKey == null) { + if (searchKey == null) { refreshController.refreshFailed(); refreshController.loadFailed(); } }); - if(searchKey == null) { + if (searchKey == null) { refreshController.refreshCompleted(); refreshController.loadComplete(); } if (baseData.isSuccess) { - if(searchKey != null){ - if(baseData?.data?.list != null && baseData.data.list.isNotEmpty) - articles.forEach((element) { - if(element.id == searchKey){ - element.content = jsonEncode(baseData.data.list[0].subjectInfo); - element.mainTitle =baseData.data.list[0].subject; - element.followed = baseData.data.list[0].selfFollow; - element.authorHeadImg = baseData.data.list[0].memberInfo?.avatar; - element.authorName = baseData.data.list[0].memberInfo?.nickname; - element.location = baseData.data.list[0].location; - element.createTime = baseData.data.list[0].createTime; - element.author = baseData.data.list[0].memberInfo?.mid; - element.viewers = baseData.data.list[0]?.viewers; - element.likes = baseData.data.list[0]?.likes; - element.comments = baseData.data.list[0]?.comments; - this.isRefresh = false; - setState(() { - }); - } - }); - }else{ + if (searchKey != null) { + if (baseData?.data?.list != null && baseData.data.list.isNotEmpty) + articles.forEach((element) { + if (element.id == searchKey) { + element.content = jsonEncode(baseData.data.list[0].subjectInfo); + element.mainTitle = baseData.data.list[0].subject; + element.followed = baseData.data.list[0].selfFollow; + element.authorHeadImg = baseData.data.list[0].memberInfo?.avatar; + element.authorName = baseData.data.list[0].memberInfo?.nickname; + element.location = baseData.data.list[0].location; + element.createTime = baseData.data.list[0].createTime; + element.author = baseData.data.list[0].memberInfo?.mid; + element.viewers = baseData.data.list[0]?.viewers; + element.likes = baseData.data.list[0]?.likes; + element.comments = baseData.data.list[0]?.comments; + this.isRefresh = false; + setState(() {}); + } + }); + } else { if (pageNum == 1) { articles.clear(); } @@ -123,7 +121,7 @@ class CommunityChildPageState extends State with AutomaticKe var article = Article(); article.id = element.id; article.content = jsonEncode(element.subjectInfo); - article.mainTitle =element.subject; + article.mainTitle = element.subject; article.followed = element.selfFollow; article.authorHeadImg = element.memberInfo?.avatar; article.authorName = element.memberInfo?.nickname; @@ -152,81 +150,82 @@ class CommunityChildPageState extends State with AutomaticKe return FutureBuilder( future: queryCommunity(null), builder: (context, position) { - return SmartRefresher( - controller: refreshController, - enablePullDown: true, - enablePullUp: true, - physics: BouncingScrollPhysics(), - header: MyHeader(), - footer: CustomFooter( - builder: (context, mode) { - return MyFooter(mode); - }, - ), - onRefresh: onRefresh, - onLoading: () { - isLoadMore = true; - setState(() {}); - }, - child: Stack( - alignment: Alignment.bottomRight, - children: [ - (articles == null || articles.length == 0)? NoDataView( - src: "assets/image/guan_zhu.webp", - isShowBtn: false, - text: "目前暂无添加关注,可在推荐中关注自己喜欢的人哦~", - fontSize: 16.sp, - margin: EdgeInsets.only(top: 120.h,left: 60.w,right: 60.w), - ) - : - ListView.builder( - controller: sc, - shrinkWrap: true, - itemBuilder: (context, position) { - return InkWell( - child: CommunityDynamic( - articles[position], - 0, - userId: userId, - isList: true, - exitFull: () { - setState(() { - onRefresh(); - }); - }, - ), - onTap: () { - Navigator.of(context).pushNamed( - '/router/community_details', - arguments: { - "businessId": articles[position].id, - "userId": userId, - }, - ).then((value) { - onRefresh(); - setState(() {}); - }); - setState(() {}); - }, - ); + return Stack( + alignment: Alignment.bottomRight, + children: [ + SmartRefresher( + controller: refreshController, + enablePullDown: true, + enablePullUp: true, + physics: BouncingScrollPhysics(), + header: MyHeader(), + footer: CustomFooter( + builder: (context, mode) { + return MyFooter(mode); }, - itemCount: articles.length, ), - GestureDetector( - onTap: (){ - widget.toRelease(); - }, - child: Container( - margin: EdgeInsets.only(bottom:31,right: 14), - child: Image.asset( - "assets/image/fa_bu.webp", - width: 55, - height: 55, - ), + onRefresh: onRefresh, + onLoading: () { + isLoadMore = true; + setState(() {}); + }, + child: (articles == null || articles.length == 0) + ? NoDataView( + src: "assets/image/guan_zhu.webp", + isShowBtn: false, + text: "目前暂无添加关注,可在推荐中关注自己喜欢的人哦~", + fontSize: 16.sp, + margin: + EdgeInsets.only(top: 120.h, left: 60.w, right: 60.w), + ) + : ListView.builder( + controller: sc, + shrinkWrap: true, + itemBuilder: (context, position) { + return InkWell( + child: CommunityDynamic( + articles[position], + 0, + userId: userId, + isList: true, + exitFull: () { + setState(() { + onRefresh(); + }); + }, + ), + onTap: () { + Navigator.of(context).pushNamed( + '/router/community_details', + arguments: { + "businessId": articles[position].id, + "userId": userId, + }, + ).then((value) { + onRefresh(); + setState(() {}); + }); + setState(() {}); + }, + ); + }, + itemCount: articles.length, + ), + ), + GestureDetector( + onTap: () { + widget.toRelease(); + }, + child: Container( + margin: EdgeInsets.only(bottom: 31, right: 14), + child: Image.asset( + "assets/image/fa_bu.webp", + width: 55, + height: 55, ), - ) - ], - ), + ), + ) + ], ); }, );