gpt4 book ai didi

带有选项卡保存状态的 Android ViewPager

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:42 28 4
gpt4 key购买 nike

我正在实现一个 ViewPager,其选项卡类似于 Google 提供的实现 here .

我的应用有以下行为。我的 ViewPager 有 3 个“页面”(fragA、fragB、fragC),我在 ViewPager 之上实现了 3 个选项卡。 google 的实现和我的不同之处在于选项卡不用于在 fragments 之间导航。例如,按下我的一个选项卡,在可见 fragment 上加载一组不同的数据。我可以选择 fragAtab3,选择 fragB tab2,选择 fragC tab1 已选中。

当我在 fragment 之间滑动时,我想保持状态,即当前选中的选项卡。我用这段代码实现了这一点:

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && mTabHost != null) {
if (mTabHost.getCurrentTab() != selectedTimePeriod) {
mTabHost.setCurrentTab(selectedTimePeriod);
}
}
}

我在 3 个 fragment 中有上面的代码,这几乎每次都按预期工作,但不幸的是,在某些情况下,我什至无法完全重现,因为它是随机发生的,状态没有得到维护。

Viewpager 滑动之间保存选项卡状态的正确方法是什么(例如在屏幕旋转之间)?

最佳答案

你可以使用

viepagerObj.setOffscreenPageLimit(2)

这将加载 fragment 并将其保存在内存中。例如,在您的情况下,除了第一个 fragment (fragC)之外,接下来的 2 个 fragment (fragB 和 fragA)将被加载并保存在内存中。默认情况下,该值为 1,表示加载 fragment C + 下一个 fragment (fragB),当您向右滑动 fragA 时,将加载移除 fragC,反之亦然。

关于带有选项卡保存状态的 Android ViewPager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27601920/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com