如何在Flutter中反转listview

问题描述 投票:0回答:12

我实现了一个

listview
,它从
json
获取数据。

我遵循了this实施。

我怎样才能反转这个列表视图的顺序? (第一个元素应该成为最后一个,ecc...)。

list listview dart flutter future
12个回答
123
投票

在将列表输入到

ListView
之前,您应该能够反转列表。

List<String> animals = ['cat', 'dog', 'duck'];
List<String> reversedAnimals = animals.reversed.toList();

38
投票

对于

ListView
,有一个名为
reverse
的标志,默认情况下为 false。将其更改为true


31
投票

ListView 有一个态度是 reverse,设置它是 true 来反转你的列表:

ListView.builder(
      reverse: true,
);

7
投票

这是一个具有 null safety 支持反转列表视图的解决方案。 不要使用reverse:true,因为它会反转您的数据,但是当您在应用程序中打开listview.builder小部件时,它将自动滚动到最后一项。 为了避免这种情况,请使用这个:-

ListView.builder(                  
                  itemCount: customer?.data.length ?? 0,
                  itemBuilder: (BuildContext context, int index) {
                    int itemCount = customer?.data.length ?? 0;
                    int reversedIndex = itemCount - 1 - index;
                    child: Container(
                     child: Text(value.allCustomerModel!.data![reversedIndex].attributes!.name.toString(),
                      ),)

3
投票

不要反转

listview
,而是使用 reversed 属性reverse 函数来反转列表。


1
投票

如果你想有条件地反转你传递给ListView的List,你可以使用这个扩展:

extension ListExtension<T> on List<T>{
  List<T> reverse(bool condition){
    return condition ? reversed.toList() : this;
  }
}

并将其用作

[].reverse(yourCondition)
(如果您在其他文件中定义了此扩展,请不要忘记导入它)


1
投票

你可以简单地反转它==>>

ListView.builder(
                      itemCount: snapshot.data!.length,
                      itemBuilder: (context, index) {
                        var reverselist = snapshot.data!.reversed.toList();

然后然后可以用作==>

     Text(
             reverselist[index]
                                            .tituloCategoria
                                            .toString(),
                                                                            

                                        overflow: TextOverflow.ellipsis,
                                      ),

`


1
投票

您可以在返回 ListView 元素之前反转列表的顺序。

ListView.separated(
    itemCount: widget.orderList.length,
    itemBuilder: (context, index) {
       final reversed = widget.orderList.reversed.toList(); // reverse your list here
       final item = reversed[index]; // assign it with index
       return Text(
           item.name, // the item name in my list
          ),
      },
      // The separators
      separatorBuilder: (context, index) {
         return const Divider(
            color: Colors.grey,
         );
        },
      ),

0
投票

示例:

List data = [
     {
        "number" : 1,
        "iterator" : 0
     },
     {
        "number" : 2,
        "iterator" : 1
     },
     {
        "number" : 3,
        "iterator" : 2
     },
   ];

**在列表视图上... **

ListView(children: [
   for (var i = data.length; i > 0; i--) ... [
      Text(data[i]["number"].toString())
   ]
])

0
投票
      List<int> number1 = List.empty(growable: true);
  if (number1.isEmpty) {
    number1.add(2);
    number1.add(9);
    number1.add(5);
    number1.add(6);
    print(number1);
    number1.sort();
    number1=number1.reversed.toList();
    print(number1);
  }

0
投票
List<int> numbers = [1, 2, 3, 4, 5, 6, 7];
List<int> reversedNumbers = numbers.reversed.toList();

0
投票
SingleChildScrollView(
      reverse: false,
      child: ListView.builder(
        shrinkWrap: true,
        reverse: true,
        physics: NeverScrollableScrollPhysics(),
        itemCount: 10,
        itemBuilder: (context, index){
          return Container();
        },
      ),
    )
© www.soinside.com 2019 - 2024. All rights reserved.