首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >android.support.design.widget.TabLayout与ViewPager不能正常工作

android.support.design.widget.TabLayout与ViewPager不能正常工作
EN

Stack Overflow用户
提问于 2016-05-17 12:36:48
回答 5查看 8.1K关注 0票数 5

如果我设置了tabLayout.setupWithViewPager( ViewPager ),android.support.design.widget.TabLayout不能与viewPager正常工作;然后tablayout视图不显示,请找到附件的屏幕截图。

代码语言:javascript
复制
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:fitsSystemWindows="false"
android:orientation="vertical"
tools:context=".home.HomeActivity"
tools:showIn="@layout/activity_home">

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:elevation="6dp"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:layout_below="@id/tab_layout"/>

片段代码:

代码语言:javascript
复制
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);       tabLayout.addTab(tabLayout.newTab().setText(getActivity().getResources().getText(R.string.feeds)));        tabLayout.addTab(tabLayout.newTab().setText(getActivity().getResources().getText(R.string.following)));        tabLayout.addTab(tabLayout.newTab().setText(getActivity().getResources().getText(R.string.you)));
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
    final ViewPager viewPager = (ViewPager) view.findViewById(R.id.pager);
    final PageAdapter adapter = new PageAdapter(getChildFragmentManager(), 3);
    viewPager.setOffscreenPageLimit(3);
    viewPager.setAdapter(adapter);
    tabLayout.setupWithViewPager(viewPager);

当删除"tabLayout.setupWithViewPager(viewPager);“时,视图工作正常。但我需要导航各自的片段,当点击各自的标签。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-08-30 14:46:05

在我的例子中我解决了这个问题,

代码语言:javascript
复制
tabLayout.setupWithViewPager(viewPager);

通过,

代码语言:javascript
复制
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(
                        tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                viewPager.setCurrentItem(tab.getPosition());
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
});

我希望这能帮到你。

票数 8
EN

Stack Overflow用户

发布于 2017-11-23 14:50:16

解决方案的简短版本(Naveen M):

代码语言:javascript
复制
viewPager.addOnPageChangeListener(
    new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(
    new TabLayout.ViewPagerOnTabSelectedListener(viewPager));
票数 2
EN

Stack Overflow用户

发布于 2016-05-17 12:58:34

尝尝这个

将这个添加到viewpager中。

代码语言:javascript
复制
app:layout_behavior="@string/appbar_scrolling_view_behavior"

同时保持父级作为协调器布局,然后只使用滚动就可以了

请参阅此处:http://coderzpassion.com/working-appbarlayout-like-whatsapp/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37267227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档