Я новичок в трепете/дротике. Я пытаюсь добавить лицензию в свой список. Я получаю свои данные через Restapi. Весь пример, который я видел в Интернете на странице, не использует будущий строитель. Вот мой код: < /p>
Я смог обнаружить, когда свиток доходит до нижней части страницы, но мне трудно загружать больше транзакций в старые списки. < /P>
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:xsocial/utils/my_drawer.dart';
import 'package:xsocial/utils/transaction_history_tile.dart';
import 'package:http/http.dart' as http;
class TransactionHistory extends StatefulWidget {
const TransactionHistory({super.key});
@override
State createState() => _TransactionHistoryState();
}
class _TransactionHistoryState extends State {
final _controller = ScrollController();
int page = 1;
Future getListData() async{
final res = await http.get(Uri.parse('http://194.143.45.195/myappi/cash-transaction-history'));
var resBody = jsonDecode(res.body);
return resBody;
}
@override
void initState() {
super.initState();
//Setup the listener.
_controller.addListener(() {
if (_controller.position.atEdge) {
bool isTop = _controller.position.pixels == 0;
if (isTop) {
print('At the top');
} else {
print('At the bottom');
//Load more data
page = page + 1;
getData(int page);
}
}
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
'Transaction History',
style: TextStyle(fontWeight: FontWeight.bold),
),
),
drawer: MyDrawer(),
body: Column(
mainAxisSize: MainAxisSize.max,
children: [
//Search bar
SizedBox(height: 15.0),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 15.0),
child: Container(
decoration: BoxDecoration(
color: Colors.grey[200],
borderRadius: BorderRadius.circular(7),
),
child: TextField(
decoration: InputDecoration(
prefixIcon: Icon(Icons.search),
border: InputBorder.none,
hintText: 'Search transactions by ID',
),
),
),
),
SizedBox(height: 15.0),
FutureBuilder(
//future: getListData(),
future: getListData(),
builder: (ctx, snapshot) {
// Checking if future is resolved or not
if (snapshot.connectionState == ConnectionState.done) {
// If we got an error
if (snapshot.hasError) {
return Center(
child: Text(
'${snapshot.error} occurred',
style: TextStyle(fontSize: 18),
),
);
// if we got our data
} else if (snapshot.hasData) {
// Extracting data from snapshot object
final data = snapshot.data as List;
return TransactionHistoryTile(list: data, scrollController: _controller);
}
}
// Displaying LoadingSpinner to indicate waiting state
return Center(
child: CircularProgressIndicator(),
);
}
),
],
),
);
}
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... r-listview
Flutter: как добавить страницу в будущие строители ListView ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1745484345
Anonymous
Я новичок в трепете/дротике. Я пытаюсь добавить лицензию в свой список. Я получаю свои данные через Restapi. Весь пример, который я видел в Интернете на странице, не использует будущий строитель. Вот мой код: < /p>
Я смог обнаружить, когда свиток доходит до нижней части страницы, но мне трудно загружать больше транзакций в старые списки. < /P>
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:xsocial/utils/my_drawer.dart';
import 'package:xsocial/utils/transaction_history_tile.dart';
import 'package:http/http.dart' as http;
class TransactionHistory extends StatefulWidget {
const TransactionHistory({super.key});
@override
State createState() => _TransactionHistoryState();
}
class _TransactionHistoryState extends State {
final _controller = ScrollController();
int page = 1;
Future getListData() async{
final res = await http.get(Uri.parse('http://194.143.45.195/myappi/cash-transaction-history'));
var resBody = jsonDecode(res.body);
return resBody;
}
@override
void initState() {
super.initState();
//Setup the listener.
_controller.addListener(() {
if (_controller.position.atEdge) {
bool isTop = _controller.position.pixels == 0;
if (isTop) {
print('At the top');
} else {
print('At the bottom');
//Load more data
page = page + 1;
getData(int page);
}
}
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
'Transaction History',
style: TextStyle(fontWeight: FontWeight.bold),
),
),
drawer: MyDrawer(),
body: Column(
mainAxisSize: MainAxisSize.max,
children: [
//Search bar
SizedBox(height: 15.0),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 15.0),
child: Container(
decoration: BoxDecoration(
color: Colors.grey[200],
borderRadius: BorderRadius.circular(7),
),
child: TextField(
decoration: InputDecoration(
prefixIcon: Icon(Icons.search),
border: InputBorder.none,
hintText: 'Search transactions by ID',
),
),
),
),
SizedBox(height: 15.0),
FutureBuilder(
//future: getListData(),
future: getListData(),
builder: (ctx, snapshot) {
// Checking if future is resolved or not
if (snapshot.connectionState == ConnectionState.done) {
// If we got an error
if (snapshot.hasError) {
return Center(
child: Text(
'${snapshot.error} occurred',
style: TextStyle(fontSize: 18),
),
);
// if we got our data
} else if (snapshot.hasData) {
// Extracting data from snapshot object
final data = snapshot.data as List;
return TransactionHistoryTile(list: data, scrollController: _controller);
}
}
// Displaying LoadingSpinner to indicate waiting state
return Center(
child: CircularProgressIndicator(),
);
}
),
],
),
);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78478581/flutter-how-do-i-add-pagination-to-future-builder-listview[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия