mirror of
https://github.com/alibaba/flutter-go.git
synced 2025-05-21 14:56:27 +08:00

# Conflicts: # lib/widgets/components/Bar/AppBar/index.dart # lib/widgets/components/Bar/BottomAppBar/demo.dart # lib/widgets/components/Bar/BottomAppBar/index.dart # lib/widgets/components/Bar/ButtonBar/index.dart # lib/widgets/components/Bar/FlexibleSpaceBar/index.dart # lib/widgets/components/Bar/SliverAppBar/index.dart # lib/widgets/components/Bar/SnackBar/index.dart # lib/widgets/components/Bar/SnackBarAction/index.dart # lib/widgets/components/Card/Card/index.dart # lib/widgets/components/LIst/ListBody/index.dart # lib/widgets/components/LIst/ListView/index.dart # lib/widgets/elements/Form/Button/DropdownButton/index.dart # lib/widgets/elements/Form/Button/FlatButton/index.dart # lib/widgets/elements/Form/Button/PopupMenuButton/index.dart # lib/widgets/elements/Form/CheckBox/Checkbox/index.dart # lib/widgets/elements/Form/CheckBox/CheckboxListTile/index.dart # lib/widgets/elements/Frame/Axis/crossAxis/index.dart # lib/widgets/elements/Frame/Axis/flipAxis/index.dart # lib/widgets/elements/Frame/Axis/mainAxis/index.dart # lib/widgets/elements/Media/Image/precacheImage/index.dart
140 lines
4.6 KiB
Dart
140 lines
4.6 KiB
Dart
/**
|
||
* Created with Android Studio.
|
||
* User: ryan
|
||
* Date: 2018/12/31
|
||
* Time: 下午2:27
|
||
* email: zhu.yan@alibaba-inc.com
|
||
* tartget: ListView 的示例
|
||
*/
|
||
|
||
import 'package:flutter/material.dart';
|
||
|
||
/*
|
||
* ListView 默认ListView的实例
|
||
* */
|
||
class ListViewFullDefault extends StatefulWidget {
|
||
const ListViewFullDefault() : super();
|
||
|
||
@override
|
||
State<StatefulWidget> createState() => _ListViewFullDefault();
|
||
}
|
||
|
||
/*
|
||
* ListView 默认的实例,有状态
|
||
* */
|
||
class _ListViewFullDefault extends State {
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
return ListView(
|
||
);
|
||
}
|
||
}
|
||
|
||
/*
|
||
* ListView 默认的实例,无状态
|
||
* */
|
||
class ListViewLessDefault extends StatelessWidget {
|
||
final widget;
|
||
final parent;
|
||
final index;
|
||
|
||
const ListViewLessDefault([this.index, this.widget, this.parent,])
|
||
: super();
|
||
|
||
@override
|
||
Widget build(BuildContext context) {
|
||
switch(index){
|
||
case 0:
|
||
return ListView(
|
||
shrinkWrap: true,
|
||
padding: EdgeInsets.all(20.0),
|
||
children: <Widget>[
|
||
Text('I\'m dedicating every day to you'),
|
||
ListTile(
|
||
leading: Icon(Icons.map),
|
||
title: Text('Maps'),
|
||
),
|
||
Text('Domestic life was never quite my style'),
|
||
ListTile(
|
||
leading: Icon(Icons.photo_album),
|
||
title: Text('Album'),
|
||
),
|
||
Text('When you smile, you knock me out, I fall apart'),
|
||
ListTile(
|
||
leading: Icon(Icons.phone),
|
||
title: Text('Phone'),
|
||
),
|
||
Text('And I thought I was so smart'),
|
||
],
|
||
);
|
||
break;
|
||
case 1:
|
||
return SizedBox(
|
||
height: 300.0,
|
||
child: ListView.builder(
|
||
scrollDirection: Axis.vertical,
|
||
itemCount: 10, // item 的个数
|
||
itemExtent: 50.0, // 如果为非null,则强制子项在滚动方向上具有给定范围
|
||
itemBuilder: (BuildContext context, int index) {
|
||
return ListTile(
|
||
title: Text("title $index"), // item 标题
|
||
leading: Icon(Icons.keyboard), // item 前置图标
|
||
subtitle: Text("subtitle $index"), // item 副标题
|
||
trailing: Icon(Icons.keyboard_arrow_right),// item 后置图标
|
||
isThreeLine:false, // item 是否三行显示
|
||
dense:true, // item 直观感受是整体大小
|
||
contentPadding: EdgeInsets.all(10.0),// item 内容内边距
|
||
enabled:true,
|
||
onTap:(){print('点击:$index');},// item onTap 点击事件
|
||
onLongPress:(){print('长按:$index');},// item onLongPress 长按事件
|
||
selected:false, // item 是否选中状态
|
||
);
|
||
},
|
||
),
|
||
);
|
||
break;
|
||
case 2:
|
||
return SizedBox(
|
||
height: 300.0,
|
||
child: ListView.separated(
|
||
scrollDirection: Axis.vertical,
|
||
itemCount: 100, // item 的个数
|
||
separatorBuilder: (BuildContext context, int index) => Divider(height:1.0,color: Colors.blue), // 添加分割线
|
||
itemBuilder: (BuildContext context, int index) {
|
||
return ListTile(
|
||
title: Text("title $index"), // item 标题
|
||
leading: Icon(Icons.keyboard), // item 前置图标
|
||
subtitle: Text("subtitle $index"), // item 副标题
|
||
trailing: Icon(Icons.keyboard_arrow_right),// item 后置图标
|
||
isThreeLine:false, // item 是否三行显示
|
||
dense:true, // item 直观感受是整体大小
|
||
contentPadding: EdgeInsets.all(10.0),// item 内容内边距
|
||
enabled:true,
|
||
onTap:(){print('点击:$index');},// item onTap 点击事件
|
||
onLongPress:(){print('长按:$index');},// item onLongPress 长按事件
|
||
selected:false, // item 是否选中状态
|
||
);
|
||
},
|
||
),
|
||
);
|
||
break;
|
||
case 3:
|
||
return SizedBox(
|
||
height: 300.0,
|
||
child: ListView.custom(
|
||
scrollDirection: Axis.vertical,
|
||
childrenDelegate:SliverChildBuilderDelegate((BuildContext context, int index) {
|
||
return Container(
|
||
height: 50.0,
|
||
alignment: Alignment.center,
|
||
color: Colors.lightBlue[100 * (index % 9)],
|
||
child: Text('list item $index'),
|
||
);
|
||
}, childCount: 10),
|
||
),
|
||
);
|
||
break;
|
||
}
|
||
|
||
}
|
||
} |