Flutter42,开发岗面试自我介绍

文章描述了一个使用Flutter构建的应用,通过getNewsList函数获取新闻列表数据,包括登录验证和API调用,以及下拉刷新功能的实现。内容还提及了NewsListItem组件,用于展示单个新闻条目并支持跳转详情页。
摘要由CSDN通过智能技术生成

getNewsList(bool isLoadMore) async {

DataUtils.isLogin().then((isLogin) {

if (isLogin) {

DataUtils.getAccessToken().then((accessToken) {

if (accessToken == null || accessToken.length == 0) {

return;

}

Map<String, dynamic> params = Map<String, dynamic>();

params[‘access_token’] = accessToken;

params[‘catalog’] = 1;

params[‘page’] = curPage;

params[‘pageSize’] = 10;//每次刷新10条

params[‘dataType’] = ‘json’;

///action/openapi/news_list

NetUtils.get(AppUrls.NEWS_LIST, params).then((data) {

//{

// “newslist”: [

// {

// “id”: 26754,

// “author”: “test33”,

// “pubDate”: “2013-09-17 16:49:50.0”,

// “title”: “asdfa”,

// “authorid”: 253469,

// “commentCount”: 0,

// “type”: 4

// }

// ],

// “notice”: {

// “replyCount”: 0,

// “msgCount”: 0,

// “fansCount”: 0,

// “referCount”: 0

// }

//}

print(‘Debug NEWS_LIST=====: $data’);

if (data != null && data.isNotEmpty) {

Map<String, dynamic> map = json.decode(data);

List _newsList = map[‘newslist’];

if (!mounted) return;

setState(() {

if (isLoadMore) {

//加载更多

newsList.addAll(_newsList);

} else {

newsList = _newsList;

}

});

}

});

});

}

});

}

@override

Widget build(BuildContext context) {

//没有登录就去登录

if (!isLogin) {

return Center(

child: Column(

mainAxisAlignment: MainAxisAlignment.center,

children: [

Text(‘由于openapi限制,必须登录才能获取资讯!’),

InkWell(

onTap: () async {

final result = await Navigator.of(context).push(

MaterialPageRoute(builder: (context) => LoginWebPage()));

if (result != null && result == ‘refresh’) {

//登录成功

eventBus.fire(LoginEvent());

}

},

child: Text(‘去登录’),

),

],

),

);

}

//下拉刷新

Future _pullToRefresh() async {

curPage = 1;

getNewsList(false);

return null;

}

//下拉刷新的

return RefreshIndicator(

onRefresh: _pullToRefresh,

child: buildListView(),

);

}

Widget buildListView() {

if (newsList == null) {

getNewsList(false);

//返回转圈圈

return CupertinoActivityIndicator();

}

return ListView.builder(

controller: _controller,

itemCount: newsList.length,

itemBuilder: (context, index) {

return NewsListItem(newsList: newsList[index]);

});

}

}

NewsListItem.dart单个条目的布局,点击以后会跳转到详情的信息

import ‘package:flutter/material.dart’;

import ‘package:flutterapp2/pages/news_detail_page.dart’;

/**

  • 新闻主界面Item的布局

*/

class NewsListItem extends StatelessWidget {

最后

由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。

需要的朋友可以私信我【答案】或者点击这里免费领取

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

img-J5brFiZx-1710967185534)]
[外链图片转存中…(img-lXQxTgNE-1710967185534)]
[外链图片转存中…(img-CyljqlK8-1710967185535)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-716t4Cix-1710967185535)]

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值