我有一个ViewPager,我动态添加3个标签片段:
private void addTabs(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new QuotesFragment(), "Quotes");
adapter.addFragment(new BooksFragment(), "Books");
adapter.addFragment(new ExercisesFragment(), "Exercises");
viewPager.setAdapter(adapter);
}
以下是未按预期工作的片段代码:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
recyclerView = (RecyclerView) getActivity().findViewById(R.id.quotes_recycler);
layoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
MasonryAdapter adapter = new MasonryAdapter(context, quotesList);
recyclerView.setAdapter(adapter);
}
RecyclerView视图持有者表单QuotesFragment()
将不会显示在父活动的开始。它们仅在我滚动到最后一个选项卡(在这种情况下为ExercisesFragment()
)时显示并返回到第一个选项卡。检查层次结构查看器似乎在应用程序启动时初始化了RecyclerView(容器在屏幕上占用了必要的空间),但它的子项不是。
奇怪的是,当我更改我添加标签的顺序时(注意我的问题标签现在位于中间):
private void addTabs(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new ExercisesFragment(), "Exercises");
adapter.addFragment(new QuotesFragment(), "Quotes");
adapter.addFragment(new BookFragment(), "Books");
viewPager.setAdapter(adapter);
}
它永远不会加载!我尝试了各种各样的事情,甚至有一个question关于完全相同的问题,但它对我的情况没有帮助。它可能与Fragment / ViewPager生命周期或隐式方法有关吗?
任何帮助表示感谢。
答案 0 :(得分:1)
我终于开始工作了,真的很愚蠢。我正在调用我的方法,在Fragment&#39 {s} onCreate()
而不是onViewCreated()
中加载来自JSON的引号。当我将其移动到onViewCreated()
时(在设置适配器和布局管理器之后)它开始工作。