我们都知道,当使用带有Fragment和FragmentPagerAdapter的ViewPager时,我们会加载3个Fragment:可见的,并且每个都在其两侧.
所以,如果我有7个片段并且我正在迭代它们以查看它们中的哪三个是已加载的,并且我的意思是onCreateView()已经被调用,我该如何确定?
解决方法
从逻辑上讲,如果调用onCreateView,这将是一个合理的测试:
myFragment.getView() != null;
假设您有一个对寻呼机迭代中所有片段的引用,并检查它们是否有视图.
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; } }
请记住,如果它们覆盖onCreateView,则其他子类必须调用super或自己设置标志.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。