首页 > 解决方案 > Android活动->片段->带有tabLayout的viewPager不起作用

问题描述

我有一个主要活动。在其中我使用了一个导航视图。如果我更改菜单项,则活动中包含的片段将被更改。

现在,我有一个名为新闻的菜单项。我有不同类型的新闻,所以我想在 NewsFragment 中使用 TabLayout 和 ViewPager。tabLayout 是不可见的,我知道原因,为什么。这是因为在主 Activity 中我使用了 navigationBar 和 AppBarLayout。(我知道,这是来自以下帖子的原因:TabLayout not shows tabs after added navigation bar

有没有人有解决这个问题的方法?

标签: androidandroid-fragmentsandroid-viewpager

解决方案


我自己找到了答案。我只需要在 AppBarLayout 中添加 TabLayout,在片段的 onCreateView 方法中我可以这样做:

View layout = inflater.inflate(R.layout.fragment_news_page, container, false);
ViewPager viewPager = layout.findViewById(R.id.news_viewPager);
// initialize adapter
viewPager.setAdapter(adapter);

TabLayout tabLayout = getActivity().findViewById(R.id.tabLayout);
tabLayout.setVisibility(View.VISIBLE);
tabLayout.setupWithViewPager(viewPager);

推荐阅读