[英]Tab in the TabLayout (with ViewPager) is not visible when selected or swiped to right most page
[英]ViewPager TabLayout issue: tab fragment content only appears after last tab has been swiped to
我有一个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()
)并返回到第一个选项卡时,它们才会显示。 在Hierarchy Viewer中签入,似乎在应用程序启动时,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);
}
它永远不会加载! 我曾尝试过各种东西,甚至还有一个问题,究竟同样的问题,但它并不在我的情况有所帮助。 可能与Fragment / ViewPager生命周期或隐式方法有关吗?
任何帮助表示赞赏。
我终于让它工作了,真的很简单。 我正在调用我的方法,该方法从Fragment的onCreate()
而不是onViewCreated()
中加载JSON引号。 当我将其移动到onViewCreated()
(设置适配器和布局管理器之后)后,它开始工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.