如何在 Flutter 中从 PageView onPageChanged 中的索引获取?
How to get from index in PageView onPageChanged in Flutter?
如何在PageView onPageChanged 中获取上一个索引?目前,我可以通过以下代码获取页面变化时的当前索引:
PageView(
children: <Widget>[
SomeView(),
SomeOtherViews(),
SomeOtherViews(),
],
controller: _pageViewController,
onPageChanged: _onPageViewChange,
);
_onPageViewChange(int page) {
print("Current Page: " + page.toString());
}
flutter有内置函数吗?还是我应该手动保存该页面作为上一页的参考?
- 是的,我已经想到了,我只是想知道是否有更快的方法而不必创建变量
将页面减 1 并存储在 class 变量(调用 setState 和修改)或局部变量中。如果当前页为 0,则将 previousPage
设置为 totalPageCount - 1.
_onPageViewChange(int page) {
print("Current Page: " + page.toString());
int previousPage = page;
if(page != 0) previousPage--;
else previousPage = 2;
print("Previous page: $previousPage");
}
您可以使用PageView.builder,它会给您页面索引。
PageView.builder(
itemBuilder: (context, index) {
// index gives you current page position.
return _buildPage();
},
itemCount: listItemCount, // Can be null
)
如何在PageView onPageChanged 中获取上一个索引?目前,我可以通过以下代码获取页面变化时的当前索引:
PageView(
children: <Widget>[
SomeView(),
SomeOtherViews(),
SomeOtherViews(),
],
controller: _pageViewController,
onPageChanged: _onPageViewChange,
);
_onPageViewChange(int page) {
print("Current Page: " + page.toString());
}
flutter有内置函数吗?还是我应该手动保存该页面作为上一页的参考?
- 是的,我已经想到了,我只是想知道是否有更快的方法而不必创建变量
将页面减 1 并存储在 class 变量(调用 setState 和修改)或局部变量中。如果当前页为 0,则将 previousPage
设置为 totalPageCount - 1.
_onPageViewChange(int page) {
print("Current Page: " + page.toString());
int previousPage = page;
if(page != 0) previousPage--;
else previousPage = 2;
print("Previous page: $previousPage");
}
您可以使用PageView.builder,它会给您页面索引。
PageView.builder(
itemBuilder: (context, index) {
// index gives you current page position.
return _buildPage();
},
itemCount: listItemCount, // Can be null
)