微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

5-flutter 布局和列表

布局和列表

1 Row 横向 布局

  @override
  Widget build(BuildContext context) {
    return Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[Text("111"),Text("222"),Text("333"),Text("444"),],
    );
  }

2 Column 竖向布局

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[Text("Column 111"),Text("Column 222"),Text("Column 333"),Text("Column 444"),],
    );
  }

3 RelativeLayout 相对布局

用于使widget 相对于彼此位置排。

4 分层布局

Stack 控件将其子项相对于框的边缘定位。如果您只想重叠多个子窗口小部件,这个类很有用。

譬如说 图片上面添加一个标签

  @override
  Widget build(BuildContext context) {
    return Stack(
      alignment: const Alignment(0.5, 0.5),
      children: <Widget>[
        CircleAvatar(backgroundImage: NetworkImage("http://img.redocn.com/sheying/20150213/mulanweichangcaoyuanfengjing_3951976.jpg"),),            
        Container(decoration: BoxDecoration(color: Colors.red),
        child: Text("Ye Ge"),)    
      ],
    );
  }

在这里插入图片描述

5 设置布局样式

用以下的方式进行布局

  • padding
  • center
  • column
  • row

6 LIstView 列表组件

scrollView 和 Tableview 的作用

更新列表方法 setState()

Flutter 渲染引擎会检查widget 树来查看widget 树 是否有什么地方改变了

动态的添加数据使用ListView.builder 来构建列表

class _MyCanvas extends StatelessWidget{
    @override
    Widget build(BuildContext context) {

      // 制作一些数据
      _makeSomeData(){
        // 创建一个存放widget的数组
        List<Widget> arr = [];
        for (int i =0;i < 100;i ++){
          arr.add(Padding(padding: EdgeInsets.all(20),child: Text("第 $i 行"),));
        }     
        return arr;
      }

      // TODO: implement build
      return Scaffold(
        appBar: AppBar(title: Text("Alex Code"),),
        body: Center(
          child: ListView(children: _makeSomeData()),          
        ),
      );
        
}

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐