TabLayout+ViewPager

来源:互联网 发布:张益唐莫宗坚恩怨知乎 编辑:程序博客网 时间:2024/05/18 01:39

tabLayout横向滑动菜单,使用的时候要导入依赖“”design“”
导入依赖的时候可能会有版本号不一致的错误,这个时候
1.把当前应用中的build.grandle下面的版本号改成一致
2.在build.grandle中的任意位置放入这段代码就可以了。

configurations.all {   resolutionStrategy.eachDependency { DependencyResolveDetails details ->       def requested = details.requested       if (requested.group == 'com.android.support') {           if (!requested.name.startsWith("multidex")) {               details.useVersion '25.3.0'           }       }   }}

使用TabLayout+ViewPager联动,首先在xml文件中进行布局
,在代码中进行设施,和设置适配器,关联起来
XML文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"><!-- app:tabGravity="center" 对齐方式,可选fill和center app:tabIndicatorColor="@color/colorAccent" 设置tab下划线的颜色 app:tabMode="scrollable" scrollable是可以横行滚动,fixed是指固定个数 app:tabSelectedTextColor="@color/colorPrimaryDark" 选择tab的文本颜色 app:tabTextColor="@color/colorPrimary" 普通tab字体颜色 -->    <android.support.design.widget.TabLayout        android:id="@+id/tab_layout"        android:layout_width="match_parent"        android:layout_height="wrap_content"        app:tabGravity="fill"        app:tabIndicatorColor="@color/colorAccent"        app:tabMode="fixed"        app:tabSelectedTextColor="@color/colorPrimaryDark"        app:tabTextColor="@color/colorPrimary" />    <android.support.v4.view.ViewPager        android:id="@+id/vp"        android:layout_width="match_parent"        android:layout_height="match_parent"></android.support.v4.view.ViewPager></LinearLayout>

java文件中,创建一个集合,存放导航栏的菜单信息,再创建一个集合,存放ViewPager的信息,进行关联

package baseFragment;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.design.widget.TabLayout;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import java.util.ArrayList;import java.util.List;import wangxuewei.bwie.com.week3.R;/** * Created by jim on 2017/10/21. */public class Fr_ShouYe extends Fragment {    private List<String> tab_list;    private List<Fragment> fr_list;    private TabLayout tab_layout;    private ViewPager vp;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View inflate = inflater.inflate(R.layout.fr_shouye, null);        tab_layout = (TabLayout) inflate.findViewById(R.id.tab_layout);        vp = (ViewPager) inflate.findViewById(R.id.vp);        //设置tab的值        initTab();        return inflate;    }    private void initTab() {        tab_list = new ArrayList<>();        tab_list.add("推荐");        tab_list.add("课程");        tab_list.add("实战");        tab_list.add("职业路径");        fr_list = new ArrayList<>();        //存放的是数据类型是Fragment        fr_list.add(new Tab_Tuijian());        fr_list.add(new Tab_KeCheng());        fr_list.add(new Tab_ShiZhan());        fr_list.add(new Tab_ZhiYeLuJing());    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        //设置适配器        vp.setAdapter(new TabAdapter(getChildFragmentManager()));        //进行关联        tab_layout.setupWithViewPager(vp);        //显示的页数        vp.setOffscreenPageLimit(fr_list.size());    }    //适配器    class TabAdapter extends FragmentPagerAdapter {        public TabAdapter(FragmentManager fm) {            super(fm);        }        @Override        public CharSequence getPageTitle(int position) {            return tab_list.get(position);        }        @Override        public Fragment getItem(int position) {            return fr_list.get(position);        }        @Override        public int getCount() {            return fr_list.size();        }    }}