gpt4 book ai didi

java - 检查 fragment 当前是否可见

转载 作者:IT老高 更新时间:2023-10-28 23:38:34 25 4
gpt4 key购买 nike

我知道 StackOverflow 中有很多类似的问题,但我的问题略有不同。

我有嵌套的 fragment 层次结构,如下所示:

                                  Activity
|
|
AFragment
|
(ViewPager)
| |
| |
BFragment BFragment .....
|
(ViewPager)
| |
| |
CFragment CFragment ...
|
(ViewPager)
| |
| |
DFragment DFragment ...

现在我想知道 DFragment 是否向用户显示?

我尝试了很多 StackOverflow 的解决方案,但都没有成功。

我尝试的是:

我尝试了 setUserVisibleHint() 但它返回 truefor 上面层次结构中的多个 DFragment 这是 ViewPager

我也尝试过以下链接:link1 , link2 , link3等等......但没有得到实际的解决方案。

等待帮助。谢谢。

更新

适配器类

class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();

public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}

@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}

@Override
public int getCount() {
return mFragmentList.size();
}

public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}

@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}

最佳答案

您可以检查 fragment 膨胀的View是否在设备屏幕上可见:


Fragment fragment = ... // retrieve from `ViewPager`'s adapter.
View fragmentRootView = fragment.getView();
if (fragmentRootView != null && fragmentRootView.getGlobalVisibleRect(new Rect())) {
// fragment is visible
} else {
// fragment is not visible
}

getGlobalVisibleRect()如果 View 的一部分在根级别可见,将返回 true

关于java - 检查 fragment 当前是否可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43207043/

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