在做Dio的get请求的时候弹出错误提示type ‘_HashMap
详情:
这是源代码
Map params = HashMap();
params['site'] = site;
params['page'] = page;
params['size'] = size;
return dio.get(Api.GET_NEWS, queryParameters: params);
改错:
给HashMap加入类型就能解决问题
Dio dio = Dio();
Map params = HashMap<String, dynamic>();
params['site'] = site;
params['page'] = page;
params['size'] = size;
return dio.get(Api.GET_NEWS, queryParameters: params);
需要把一个组件放到屏幕的下面,直接用Alignment是没有效果的,因为没有充满屏幕的所有空间
解决方案:
Flex/Column+Expand效果就不错
或者用Stack+Position定位
ListView点击跳转到下一个界面的时候,点击返回键,会向上跳转两个界面
解决方案:
这是原来的代码:
child: ListView.builder(
itemCount: _chooseNewsList.length,
itemBuilder: (context, i){
return InkWell(
onTap:() {
Navigator.of(context).push(
MaterialPageRoute(builder: (context) => NewsDetail(_chooseNewsList[i])),
);
},
child: NewsItem(_chooseNewsList[i]),
);
},
),
这是修改过后的代码
child: ListView.builder(
itemCount: _chooseNewsList.length,
itemBuilder: (context, i){
return InkWell(
onTap:() {
Navigator.of(this.context).push(
MaterialPageRoute(builder: (context) => NewsDetail(_chooseNewsList[i])),
);
},
child: NewsItem(_chooseNewsList[i]),
);
},
),
就是把context改成页面的Context而不是ListView里的context
在ListView中如果嵌套一个SizedBox,起不到约束效果
解决办法:
将ListView换成Column,之后约束,把想要滚动的部分用Expanded+ListView/SingleChildScrollView重新装填
详情:The specific widget that could not find a Scaffold ancestor was:…
解决办法:
这是我在调用函数,showSheet()的时候发生的,改成showModelSheet()就好了
详情:在项目中有一段返回值类似{“data”:[1,2,3]},转换List会报错
解决办法:
用JsonDecode.convert()函数,即可实现转换
详情:在initState()中显示对话框报错,flutter: Unhandled Exception: inheritFromWidgetOfExactType(_LocalizationsScope) or inheritFromElement() was called before Page.initState() completed…
解决办法:利用Future.delay()延迟执行