TabLayout横滑菜单+viewpager

来源:互联网 发布:惠州市博罗县网络问政 编辑:程序博客网 时间:2024/05/29 05:11

1、添加远程依赖

compile 'com.android.support:design:25.2.0'

2、在布局文件的设置

.xml文件中创建tabLayout布局,,,复制使用的相关的属性,,,并且把命名空间复制过来xmlns:app="http://schemas.android.com/apk/res-auto"app:tabGravity="center"    设置居中对齐app:tabIndicatorColor="@color/colorAccent" 下滑线的颜色app:tabMode="scrollable"  设置tabLayoout菜单的模式,,,scrollable可以横向滚动app:tabSelectedTextColor="@color/colorPrimaryDark"  选中的时候文字的颜色app:tabTextColor="@color/colorPrimary"       文本默认的颜色/*     平铺版<android.support.design.widget.TabLayout        android:layout_below="@id/edit"        android:layout_width="match_parent"        android:layout_height="50dp"        android:id="@+id/tablayout"        app:tabGravity="fill"        app:tabIndicatorColor="@color/colorAccent"        app:tabMode="fixed"        app:tabSelectedTextColor="@color/colorPrimaryDark"        app:tabTextColor="@color/colorPrimary"></android.support.design.widget.TabLayout>*/<?xml version="1.0" encoding="utf-8"?><RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"    android:layout_height="match_parent" tools:context="com.example.tablayout.MainActivity">    <android.support.design.widget.TabLayout     //可滑动版        android:layout_width="match_parent"        android:layout_height="50dp"        android:id="@+id/tablayout"        app:tabGravity="center"        app:tabIndicatorColor="@color/colorAccent"        app:tabMode="scrollable"        app:tabSelectedTextColor="@color/colorPrimaryDark"        app:tabTextColor="@color/colorPrimary"        >    </android.support.design.widget.TabLayout>    <android.support.v4.view.ViewPager        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/viewpager"        android:layout_below="@+id/tablayout"        ><!--  必须设置上下关系-->    </android.support.v4.view.ViewPager></RelativeLayout>

3、在Activity中的使用方法

package com.example.tablayout;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.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.Layout;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private TabLayout tablayout;    private ViewPager viewpager;    private List<String>  datas = new ArrayList<String>();    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tablayout = (TabLayout) findViewById(R.id.tablayout);        viewpager = (ViewPager) findViewById(R.id.viewpager);        datas.add("推荐");        datas.add("要闻");        datas.add("娱乐");        datas.add("科技");        datas.add("汽车");        datas.add("体育");        datas.add("图片");        datas.add("动漫");        datas.add("社会");        datas.add("游戏");        //添加适配器        viewpager.setAdapter(new MyAdapter(getSupportFragmentManager()));        //进行关联        tablayout.setupWithViewPager(viewpager);    }    class  MyAdapter extends FragmentPagerAdapter{        public MyAdapter(FragmentManager fm) {            super(fm);        }       //返回选项卡        public CharSequence getPageTitle(int position) {            return datas.get(position);        }        @Override        public Fragment getItem(int position) {//创建fragment并返回            Bundle bun=new Bundle();            bun.putString("key",datas.get(position).toString());            Fram fr=new Fram();            fr.setArguments(bun);            return fr;        }        @Override        public int getCount() {//返回选项卡数量            return datas.size();        }    }}

4、Fragment的书写

package com.example.tablayout;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;/** * Created by Administrator on 2017/10/14 0014. */public class Fram extends Fragment {    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {      View v=View.inflate(getActivity(),R.layout.kin,null);        TextView wen= (TextView) v.findViewById(R.id.wen);     Bundle  bun=getArguments();        wen.setText(bun.getString("key"));        return v;    }}

5、在Fragment中的书写

package com.example.day2017_10_21demo.Fragment;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 com.example.day2017_10_21demo.R;import java.util.ArrayList;import java.util.List;/** * Created by 墨鸦 on 2017/10/21. */public class FragmentSouye extends Fragment {    private TabLayout layout_shouye_tablayout;    private ViewPager layout_shouye_viewpager;    private List<String> datas = new ArrayList<String>();    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        //加载视图        View view=View.inflate(getActivity(), R.layout.layout_shouye,null);        //查找控件        layout_shouye_tablayout = (TabLayout) view.findViewById(R.id.layout_shouye_tablayout);        layout_shouye_viewpager = (ViewPager) view.findViewById(R.id.layout_shouye_viewpager);        //添加数据        datas.add("推荐");        datas.add("课程");        datas.add("实战");        datas.add("职业路径");        //适配器        class MyAdapter extends FragmentPagerAdapter {            public MyAdapter(FragmentManager fm) {                super(fm);            }            //返回选项卡            public CharSequence getPageTitle(int position) {                return datas.get(position);            }            @Override            public Fragment getItem(int position) {//创建fragment并返回                Fragment f=null;                switch (position){                    case 0:                        f=new FragmentTuijian();                        break;                    case 1:                        f=new FragmentKecheng();                        break;                    case 2:                        f=new FragmentShizhan();                        break;                    case 3:                        f=new FragmentZhiyelujing();                        break;                }                return f;            }            @Override            public int getCount() {//返回选项卡数量                return datas.size();            }        }        //添加适配器        layout_shouye_viewpager.setAdapter(new MyAdapter(getActivity().getSupportFragmentManager()));        //进行关联        layout_shouye_tablayout.setupWithViewPager(layout_shouye_viewpager);        return view;    }}
原创粉丝点击