美文网首页
fluttrer 列表学习

fluttrer 列表学习

作者: 驰马奥 | 来源:发表于2023-02-25 02:05 被阅读0次

import 'dart:math';

import 'package:flutter/material.dart';

void main() {

  runApp(const MyApp());

}

class MyApp extends StatelessWidget {

  const MyApp({super.key});

  @override

  Widget build(BuildContext context) {

    return MaterialApp(

      title: 'Flutter Demo',

      theme: ThemeData(

        primarySwatch: Colors.blue,

      ),

      home: const MyHomePage(title: 'Flutter Demo Home Page'),

    );

  }

}

class MyHomePage extends StatefulWidget {

  const MyHomePage({super.key, required this.title});

  final String title;

  @override

  State<MyHomePage> createState() => _MyHomePageState();

}

class _MyHomePageState extends State<MyHomePage> {

  int _counter = 0;

  List<String> items = List.generate(10, (int i) => '$i' + "10");

  List<String> items2 = List.generate(10, (int i) => '$i' + "1000");

  @override

  Widget build(BuildContext context) {

    return Scaffold(

      appBar: AppBar(

        // Here we take the value from the MyHomePage object that was created by

        // the App.build method, and use it to set our appbar title.

        title: Text(widget.title),

      ),

      body: _createListView2() , // This trailing comma makes auto-formatting nicer for build methods.

    );

  }

Widget _createListView2() {

    Widget widget = ListView.builder(itemBuilder: (context, index) {

      if (index == 0 || index == 2) {

      return Container(

        key: ValueKey("$index"),

        color: Colors.white,

        height: 80,

        width: double.infinity,

        child: Text("$index分类行",style: const TextStyle(color: Colors.black,fontSize: 20),),

      );

      } else {

      return Container(

        height: 56 * 10,

        child: _createReorderableListView(index == 1 ? 0 : 1),

      );

      }

    } , itemCount: 4);

    return widget;

  }

  Widget _createRenderTable() {

        Widget widget = CustomScrollView(

        slivers:[

          SliverReorderableList(itemBuilder: (context, index) {

            return Container(

              key: ValueKey("$index + w"),

              color: Color.fromARGB(255, Random().nextInt(256), Random().nextInt(256),Random().nextInt(256)),

              height: 56,

              width: double.infinity,

              child: Text("第$index行",style: const TextStyle(color: Colors.red,fontSize: 20),),

              );

              }, itemCount: 5, onReorder: (int oldIndex, int newIndex) {

                if (newIndex > oldIndex) {

                  newIndex -= 1;

                  }

                  }),

                  SliverReorderableList(itemBuilder: (context, index) {

            return Container(

              key: ValueKey("$index + k"),

              color: Color.fromARGB(255, Random().nextInt(256), Random().nextInt(256),Random().nextInt(256)),

              height: 56,

              width: double.infinity,

              child: Text("第$index行",style: const TextStyle(color: Colors.red,fontSize: 20),),

              );

              }, itemCount: 5, onReorder: (int oldIndex, int newIndex) {

                if (newIndex > oldIndex) {

                  newIndex -= 1;

                  }

                  }),

        ],

      );

      return widget;

  }

  Widget _createReorderableListView(int type) {

    //SliverReorderableList

    Widget widget = ReorderableListView.builder(key:ValueKey('$type' + 't'), itemBuilder: (context, index) {

      return Container(

        key: type == 0 ? ValueKey(items[index]) : ValueKey(items2[index]),

        color: Colors.white,

        height: 56,

        width: double.infinity,

        child: Text("第${type == 0 ? items[index] : items2[index]}行",style: const TextStyle(color: Colors.red,fontSize: 20),),

      );

    } , itemCount: 10,

    onReorder: (int oldIndex, int newIndex) {

        //  if (newIndex > oldIndex) {

        //    newIndex -= 1;

        //  }

          print(oldIndex);

          print(newIndex);

          var element = (type == 0 ? items[oldIndex] : items2[oldIndex]);

          if (type == 0) {

            if (newIndex >= items.length) {

              newIndex = (items.length - 1);

            }

          } else {

            if (newIndex >= items2.length) {

              newIndex = (items2.length - 1);

            }

          }

          setState(() {

            if (type == 0) {

            items.removeAt(oldIndex);

            items.insert(newIndex, element);

            } else {

              items2.removeAt(oldIndex);

              items2.insert(newIndex, element);

            }

          });

    });

    return widget;

  }

  Widget _createListView() {

    Widget widget = ListView.builder(itemBuilder: (context, index) {

      return Container(

        key: ValueKey("$index"),

        color: Color.fromARGB(255, Random().nextInt(256), Random().nextInt(256),Random().nextInt(256)),

        height: 56,

        width: double.infinity,

        child: Text("第$index行",style: const TextStyle(color: Colors.red,fontSize: 20),),

      );

    } , itemCount: 5);

    return widget;

  }

  Widget _createMyScrollviewDemo03() {

        Widget widget = CustomScrollView(

        slivers:[

          SliverList(delegate: SliverChildBuilderDelegate(

            (BuildContext contetx, int index){

              return Container(

                height: 20,

              color: Color.fromARGB(255, Random().nextInt(256), Random().nextInt(256),Random().nextInt(256)),

              );

            },

            childCount: 20,

          )),

          SliverList(delegate: SliverChildBuilderDelegate(

            (BuildContext contetx, int index){

              return Container(

                height: 20,

              color: Color.fromARGB(255, Random().nextInt(256), Random().nextInt(256),Random().nextInt(256)),

              );

            },

            childCount: 20,

          )),

        ],

      );

      return widget;

  }

  Widget _createMyScrollviewDemo02() {

        Widget widget = CustomScrollView(

        slivers:[

          SliverGrid(delegate: SliverChildBuilderDelegate(

            // ignore: avoid_types_as_parameter_names, non_constant_identifier_names

            (BuilderContext, int)  {

              return Container(

              color: Color.fromARGB(255, Random().nextInt(256), Random().nextInt(256),Random().nextInt(256)),

              );

            },

            childCount: 20,

          ),

          gridDelegate:  const SliverGridDelegateWithFixedCrossAxisCount(

            crossAxisCount: 2,

            crossAxisSpacing: 8,

            mainAxisSpacing: 8,

            childAspectRatio: 1.5

          ),),

          SliverList(delegate: SliverChildBuilderDelegate(

            (BuildContext contetx, int index){

              return Container(

              height: 56,

              color: Color.fromARGB(255, Random().nextInt(256), Random().nextInt(256),Random().nextInt(256)),

              );

            },

            childCount: 20,

          )),

        ],

      );

      return widget;

  }

  Widget _createMyScrollviewDemo01() {

    Widget widget = CustomScrollView(

        slivers:[ _createSliverGirdle()],

      );

      return widget;

    }

    Widget _createSliverGirdle() {

      Widget widget =  SliverSafeArea(

            sliver: SliverPadding(padding:const EdgeInsets.only(top: 10),

            sliver: SliverGrid(delegate: SliverChildBuilderDelegate(

            // ignore: avoid_types_as_parameter_names, non_constant_identifier_names

            (BuilderContext, int)  {

              return Container(

              color: Color.fromARGB(255, Random().nextInt(256), Random().nextInt(256),Random().nextInt(256)),

              );

            },

            childCount: 20,

          ),

          gridDelegate:  const SliverGridDelegateWithFixedCrossAxisCount(

            crossAxisCount: 2,

            crossAxisSpacing: 8,

            mainAxisSpacing: 8,

            childAspectRatio: 1.5

          ),)

          ));

          return widget;

    }

}

相关文章

  • 【Python】列表简介 - 作用和格式

    Python列表学习主要学习以下5大点,分别是列表的应用场景、列表的格式、列表的常用操作、列表的循环遍历,列表的嵌...

  • 学习列表

    kmp//emmm 搁浅 Manacher//十之八九 hash 中国剩余定理 深入了解扩展欧几里得算法 最长公共...

  • 学习列表

    1、微博上viewhelper的滑动操做 2、SC roll view嵌套ListView 百度一下,四种方法,动...

  • Python学习打call第七天:列表

    今天要学习的是Python的列表,主要学习一下什么是列表、列表的可变性、列表的访问、列表的增删改查等操作哦~ 1....

  • 9月27日-4期C语言学习总结

    今天学习内容列表类控件 列表框 组合框 列表视图 主要学习了添加、删除、查找列表的功能,老师按照PPT逐步进行讲解...

  • 无标题文章

    学习 Markdown [TOC] 超链接 百度 列表 无序列表1 无序列表2 无序列表3 无序列表3 有序列表 ...

  • CSS(一)

    学习笔记(六):列表 常见的列表有三种:无序列表、有序列表、定义列表 一、无序列表 无序列表,用来表示一个列表的语...

  • 开发资料

    开源ReactNative项目列表 学习资料-书籍 iOS文章列表 iOS开源列表 Awesome iOS A c...

  • Python学习——列表简介

    Python学习——列表操作 列表: 列表内的元素可以通过索引来操作和使用 列表的修改、添加、删除: 修改: 添加...

  • 5.CSS学习笔记第五节/列表

    CSS学习笔记第五节/列表 1.列表

网友评论

      本文标题:fluttrer 列表学习

      本文链接:https://www.haomeiwen.com/subject/fdkfldtx.html