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

时间:2015-09-22 11:05:08

标签: android android-fragments android-activity

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

Fragment currentVisibleFragment = getSupportFragmentManager().findFragmentByTag(null);

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

4 个答案:

答案 0 :(得分:12)

Fragment getCurrentFragment()
{
    Fragment currentFragment = getSupportFragmentManager()
            .findFragmentById(R.id.content_frame);
    return currentFragment;
}

像这样调用函数

Fragment visibleFragment=getCurrentFragment();

调用此函数可以获得当前可见的片段。如果有任何混淆,那么可以免费询问thankx :)

答案 1 :(得分: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;
}

<强>用法

if (getVisibleFragment() instanceof HomeScreen) {
  // Logic here...
}

MainActivity是持有者,HomeScreen是您的片段之一。

答案 2 :(得分:0)

public boolean checkFragmentAvailableOrNot1(String fragmentName) 
{
   Fragment fragment=getSupportFragmentManager().findFragmentByTag(fragmentName);
    if (fragment instanceof FragMercado && fragment.isVisible()) 
    {
        return true;
    }
    return false;
}

答案 3 :(得分:0)

android.support.v4.app.Fragment getCurrentFragment()
{
    Fragment currentFragment = getActivity().getSupportFragmentManager()
            .findFragmentById(R.id.frameLayout);
    return currentFragment;
}