如何知道片段是否已经调用onCreateView()

Chr*_*sco 10 android android-fragments

我们都知道,当使用ViewPagerFragment,FragmentPagerAdapter我们得到3个Fragment装载:可见的一个,并且在它的每一侧都有.

所以,如果我有7 Fragments并且我正在迭代它们以查看哪三个是加载的那个,并且我的意思是onCreateView()已经被调用,我该如何确定?

编辑:Fragment没有成为一个在ViewPager显示时,只是onCreateView()已经被调用.

Cur*_*aul 16

从逻辑上讲,如果调用onCreateView,这将是一个合理的测试:

myFragment.getView() != null;
Run Code Online (Sandbox Code Playgroud)

假设您有一个对寻呼机迭代中所有片段的引用,并检查它们是否有视图.

http://developer.android.com/reference/android/app/Fragment.html#getView()

更新

上面的答案假设您的片段始终创建一个视图,而不是无视的片段.如果是,那么我建议对片段进行子类化,如下所示:

public abstract class SubFragment extends Fragment
{
    protected boolean onCreateViewCalled = false;

    public boolean hasOnCreateViewBeenCalled()
    {
        return onCreateViewCalled;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup Container, Bundle state){
        onCreateViewCalled = true;
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

请记住,如果它们覆盖onCreateView,则其他子类必须调用super或自己设置标志.