一、效果就和正常的列表控件滑动一样
二、实现
1、创建ListView组件,因为里边需要传入一个List的Widget这个就是我们的组件
2、ListView默认是垂直滑动的,如果你的需要的就是垂直滑动不用做任何处理直接填充数据即可
3、准备数据源,填充ListView实现就能实现滑动
4、如果你需要把垂直数据源变为水平的那么修改ListView的scrollDirection: Axis.horizontal
5、在水平滑动的时候,如果你需要控制item的高度,那么需要设置ListView的高度,才能修改有效果
三、以下是源代码
class StarPage extends StatefulWidget {
const StarPage({Key key}) : super(key: key);
@override
_StarPageState createState() => _StarPageState();
}
const citys = [
"北京",
"北京",
"上海",
"北京",
"广东",
"深圳",
"北京",
"杭州",
"北京",
"苏州",
"北京",
"苏州",
"武汉",
"苏州",
"郑州",
"天津"
];
class _StarPageState extends State<StarPage> {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "星球",
home: Scaffold(
appBar: AppBar(
title: Text("星球"),
),
//包裹listview ,设置高度
body: ListView(
children: _budildList(),
scrollDirection: Axis.horizontal,
),
),
);
}
List<Widget> _budildList() {
return citys.map((city) => _item(city)).toList();
}
Widget _item(String city) {
return Container(
height: 80,
width: 160,
margin: EdgeInsets.only(bottom: 5),
alignment: Alignment.center,
decoration: BoxDecoration(color: Colors.teal),
child: Text(
city,
style: TextStyle(color: Colors.white, fontSize: 20),
),
);
}
}