#android #dart #flutter
#Android #dart #flutter
Вопрос:
Я хотел изменить список, и я добился этого с помощью reverse: true,
. Это работает, но список выровнен по низу и показывает пустое пространство вверху, когда в списке меньше всего элементов.
Expanded(child: ListView.builder(
shrinkWrap: true,
reverse: true,
controller: _scrollController,
itemCount:order_response.orderDetails.length,
itemBuilder: (context, position) {return orderListItemTile(width,height,order_response,position);},
),)
Но когда я удалил expanded()
виджет, когда элементы увеличиваются, он переполняется на пиксель.
ListView.builder(
shrinkWrap: true,
reverse: true,
controller: _scrollController,
itemCount:order_response.orderDetails.length,
itemBuilder: (context, position) {return orderListItemTile(width,height,order_response,position);},
),
Ответ №1:
Помимо изменения списка, другим решением может быть помещение ListView
внутри Align
виджета с alignment: Alignment.topCenter
. Также shrinkWrap: true
необходим внутри ListView
.
Align(
alignment: Alignment.topCenter,
child: ListView.builder(
reverse: true,
shrinkWrap: true,
...
...
)
)
Комментарии:
1. Имейте в виду, что это решение работает, потому что оно сжимает
ListView
, поэтому вам придется справиться с проблемой, связанной с отсутствием полноэкранного режимаListView
. (например, прокрутка внутри него)
Ответ №2:
Измените свой список, используя:
var reversedList = _response.orderDetails.reversed.toList();
Комментарии:
1.
val
не может использоваться для объявления переменной в Dart. Может быть, вас смущает его использование в Kotlin или что-то в этом роде?final
,var
или в данном случае уместно использовать сам тип.2. Сработало очень хорошо.