У меня есть список в базе данных, и я могу показать его полностью на странице с StreamBuilder, но когда записей становится слишком много, я хочу создать решение для нумерации страниц. Это не будет тип прокрутки, у меня в нижней панели есть значок навигации, он похож на «», и мне нужно перемещаться по страницам с этим.
До сих пор я пробовал что-то подобное ниже, но не может достичь еще.
StreamBuilder<dynamic>(
stream: listDao.findAllItemsAsStream(),
builder: (context, snapshot) {
if (snapshot.hasError)
return new Scaffold(...)
else return SafeArea(
child: Scaffold(
body: Container(
padding: EdgeInsets.all(4),
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
child: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: mediaQueryData.orientation == 1,
childAspectRatio: mediaQueryData.orientation == 1/2,
),
var page = 1
itemcount: snapshot.data.length > 10 ? 10 : snapshot.data.length
var totalPages = snapshot.data.length/10.toInt()+1
page == 1 ? indexP = index : indexP = index + page*10
itemBuilder: (context, index) {
return Text(snapshot.data[indexP].title)
}
),
),
bottomNavigationBar:
new BottomAppBar(
child: Row (
children: <Widget> [
InkWell(
onTap () {
if (page > 1){page = page - 1;}
else {}},
child: Icon(Icons.arrow_back_ios, size: 35,)),),
Text(page + "/" + totalPage),
InkWell(
onTap () {
if (page < totalPages){page = page + 1;}
else {},
child: Icon(Icons.arrow_forward_ios, size: 35,)),
),]
),
);
})