设置一个根据接口值变更颜色的组件流程
设置组件的属性值为一个方法就好。
Text(_list[index]["list"][indexs]["spread"],
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white, //- 设置字体颜色,这里设置的是一个具体值
backgroundColor: _switchColor(rowModel["spread"]))),//设置背景颜色,方法返回一个Color
_switchColor(value) {
if(double.parse(value) == 0){
return Colors.grey;
}else if(double.parse(value) > 0){
return Colors.green;
}else{
return Colors.red;
}
}
很简单,就是基于对dart语法的学习.
listView实现上拉加载.
大概给原有的listview上附加3个部分.
1.声明一个ScrollController,这个controller有滑动的监听,通过这个监听执行刷新的方法。
ScrollController _controller = new ScrollController();
_controller.addListener((){
//判断是否滑动到了页面的最底部
if(_controller.position.pixels == _controller.position.maxScrollExtent){
//如果不是最后一页数据,则生成新的数据添加到list里面
if(_page < totalPage){
_onRefresh();
}
}
});
}
2.把controller绑定到listview上
Expanded(
child: ListView.builder(
controller: _controller,
itemCount: _list == null ? 0 : _list.length,
itemBuilder: this._getItems),
)
3.实现加载方法,注意异步的写法
Future<void> _onRefresh() async {
_page ++;
this._getData();
}
这里是异步future函数的具体教程:www.jianshu.com/p/c0e30769e…
简单的页面跳转
基本写法
Navigator.of(context).push(
MaterialPageRoute(builder: (context)=>FirstPage())
);
这个FirstPage就是你建的新页面的StatefulWidget
import 'package:flutter/material.dart';
class FirstPage extends StatefulWidget {
FirstPage({Key key}) : super(key: key);
@override
_FirstPageState createState() => _FirstPageState();
}
class _FirstPageState extends State<FirstPage> {
....
当然别忘了引入
import '../home/first.dart';