ListView

Flutter 中的ListView相当于Android中的Scrollview也相当于Android中的ListView。

常用属性

children: []
scrollDirection: Axis.horizontal, //滑动方向

基础Demo

学习点:ListTile及scrollDirection

import 'package:flutter/material.dart';void main() => runApp(MyApp());class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MaterialApp(      title: "ListView",      home: Scaffold(          appBar: AppBar(            title: new Text("ListViewDemo"),          ),          body: MyListViewHorizontal()),    );  }}class MyListViewVertical extends StatelessWidget {  @override  Widget build(BuildContext context) {    return new ListView(      children: getWidgets(),//          [//        new ListTile(//          leading: new Icon(Icons.access_alarm),//          title: new Text("access_alarm"),//        ),//        new ListTile(//          leading: new Icon(Icons.access_time),//          title: new Text("access_time"),//        ),//        new ListTile(//          leading: new Icon(Icons.accessibility_new),//          title: new Text("accessibility_new"),//        ),//      ],    );  }  List getWidgets() {    List widgets = new List();    for (int i = 0; i < 10; i++) {      widgets.add(new ListTile(        leading: new Icon(Icons.access_alarm),        title: new Text("access_alarm"),      ));      widgets.add(new ListTile(        leading: new Icon(Icons.access_time),        title: new Text("access_time"),      ));      widgets.add(new ListTile(        leading: new Icon(Icons.accessibility_new),        title: new Text("accessibility_new"),      ));    }    return widgets;  }}class MyListViewHorizontal extends StatelessWidget {  @override  Widget build(BuildContext context) {    return new Center(        child: new Container(      height: 200,      child: new ListView(        scrollDirection: Axis.horizontal,        children: getWidgets(),      ),    ));  }  List getWidgets() {    List widgets = new List();    for (int i = 0; i < 10; i++) {      widgets.add(new Container(        color: Colors.blue,        width: 200,      ));      widgets.add(new Container(        color: Colors.yellow,        width: 200,      ));      widgets.add(new Container(        color: Colors.red,        width: 200,      ));    }    return widgets;  }}

进阶Demo

学习点:
1、动态ListView 使用ListView.Builder 创建,常用属性:itemCount: items.length, itemBuilder: (context,index){}
2、组件传递参数 其中组件构造器中的Key key是默认的参数必须写的,其他参数当为必须传递的参数时需要添加@required

import 'package:flutter/material.dart';void main() => runApp(MyApp(      items: new List.generate(100, (i) => "Item $i"),    ));class MyApp extends StatelessWidget {  final List items;  MyApp({Key key, @required this.items}) : super(key: key);  @override  Widget build(BuildContext context) {    return new MaterialApp(      title: "ListView",      home: new Scaffold(        appBar: AppBar(          title: new Text("ListView Dynamic"),        ),        body: new ListView.builder(          itemCount: items.length,          itemBuilder: (context,index){            return new ListTile(              title: new Text("${items[index]}"),            );          },        ),      ),    );  }}

更多相关文章

  1. Android-NDK开发之基础--Android(安卓)JNI实例代码(四)-- JNI中
  2. Android倒计时之 CountDownTimer
  3. JNI
  4. Android(安卓)ListView实现通讯录的例子
  5. Android系统通用技巧合集
  6. build android toochain on mac (gcc 4.4.3 compile)
  7. Android(安卓)程式开发:(一)详解Activity —— 1.3隐藏标题栏
  8. java.lang.IllegalArgumentException: connection is null 绑定
  9. Android(安卓)JNI入门第三篇――jni头文件分析

随机推荐

  1. android 登陆demo
  2. Wifi定位Gps
  3. 如何让你的Android显示gif格式的图片
  4. Android图形绘制基础(一)
  5. 主流手机分辨率尺寸
  6. 界面中显示NumberPicker,修改字体大小
  7. android的事件分发
  8. webview获取Url高度
  9. 【Android】解决File中文名字问题
  10. Android(安卓)bluetooth 开发