查看寻呼机选项卡布局问题:选项卡片段内容仅在滑动到最后一个选项卡后显示



我有一个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);
}

"回收器视图视图持有者"窗体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);
}

它永远不会加载!我尝试了各种方法,甚至有一个关于完全相同的问题的问题,但这对我的情况没有帮助。它是否与片段/ViewPager 生命周期或隐式方法有关?

任何帮助表示赞赏。

我终于让它工作了,它真的很简单。我调用的方法在 Fragment 的onCreate()中加载来自 JSON 的引用,而不是onViewCreated()。当我将其移动到onViewCreated()(设置适配器和布局管理器后(时,它开始工作。

相关内容

最新更新