如何在android中获取当前可见的片段?

Sar*_*vam 1 android android-fragments android-activity

我有MainActivity,在这个活动中我有四个fragments.片段名称是A,B,C,D.

Fragment currentVisibleFragment = getSupportFragmentManager().findFragmentByTag(null);
Run Code Online (Sandbox Code Playgroud)

使用上面的这一行,我试图让当前可见,fragment但我无法获得当前可见的片段.

小智 13

Fragment getCurrentFragment()
{
    Fragment currentFragment = getSupportFragmentManager()
            .findFragmentById(R.id.content_frame);
    return currentFragment;
}
Run Code Online (Sandbox Code Playgroud)

像这样调用函数

Fragment visibleFragment=getCurrentFragment();
Run Code Online (Sandbox Code Playgroud)

调用这个函数你可以得到当前可见的fragment.if任何混乱然后感觉免费问谢谢:)


Ano*_*p M 11

private Fragment getVisibleFragment() {
        FragmentManager fragmentManager = MainActivity.this.getSupportFragmentManager();
        List<Fragment> fragments = fragmentManager.getFragments();
        for (Fragment fragment : fragments) {
            if (fragment != null && fragment.isVisible())
                return fragment;
        }
        return null;
}
Run Code Online (Sandbox Code Playgroud)

用法

if (getVisibleFragment() instanceof HomeScreen) {
  // Logic here...
}
Run Code Online (Sandbox Code Playgroud)

分别MainActivity是持有人,并HomeScreen为您的片段之一.