materialdesign之tablayout的用法

自从Material design出来之后,备受安卓开发人员的喜爱,因为其风格更加的符合人们的审美观,也就是我们所说的面向对象,大众喜欢的风格才是最好的风格,下面我就介绍一下Material design中tablayout的用法。这是非常方便的比起以前的相互切换更加简洁方便下面看如何实现

首先我们用到Material design这个风格,所以得需要Material design这个支持库

compile 'com.android.support:design:23.2.1'
所以需要这个依赖,下一步写布局了在activity_main里面加入tablayout布局

<LinearLayout 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.administrator.tablayout.MainActivity"
    android:orientation="vertical"
    >

    <android.support.design.widget.TabLayout
        android:id="@+id/tab_FindFragment_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/titleBlue"
        app:tabIndicatorColor="@color/white"
        app:tabSelectedTextColor="@color/gray"
        app:tabTextColor="@color/white"
        app:tabTextAppearance="@style/tabLayoutTextSize"
        />


    <android.support.v4.view.ViewPager
        android:id="@+id/vp_FindFragment_pager"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        />
之后,我们需要向里面添加fragment,所以这里我用list包裹fragment,如下是fragmentadapter

public class FragmentAdapter extends FragmentPagerAdapter{
    private List<Fragment> list_fragment;                         //fragment列表
    private List<String> list_Title;                              //tab名的列表
    public FragmentAdapter(FragmentManager fm) {
        super(fm);
    }


    public FragmentAdapter(FragmentManager fragmentManager, List<Fragment> list_fragment, List<String> list_title) {
        super(fragmentManager);
        this.list_fragment = list_fragment;
        this.list_Title =list_title;
    }

    @Override
    public Fragment getItem(int position) {
        return list_fragment.get(position);
    }

    @Override
    public int getCount() {
        return list_fragment.size();
    }
    //此方法用来显示tab上的名字
    @Override
    public CharSequence getPageTitle(int position) {

        return list_Title.get(position % list_Title.size());
    }

之后对MainActivity进行添加fragment了,这里有必要说明一下这个时候必须得继承FragmentActivity,所以可以得到如下

public class MainActivity extends FragmentActivity {

    private TabLayout tab_FindFragment_title;
    private ViewPager vp_FindFragment_pager;
    private FragmentPagerAdapter fAdapter;

    private List<Fragment> list_fragment;
    private List<String> list_title;

    private Fragment3 fragment3;
    private Fragment1 fragment1;
    private Fragment2 fragment2;
    private Fragment4 fragment4;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.content_main);
        initControls();

    }

    private void initControls() {
        tab_FindFragment_title = (TabLayout) findViewById(R.id.tab_FindFragment_title);
        vp_FindFragment_pager = (ViewPager) findViewById(R.id.vp_FindFragment_pager);

        fragment3 = new Fragment3();
        fragment1 = new Fragment1();
        fragment2 = new Fragment2();
        fragment4 = new Fragment4();

        list_fragment = new ArrayList<>();
        list_fragment.add(fragment3);
        list_fragment.add(fragment1);
        list_fragment.add(fragment2);
        list_fragment.add(fragment4);

        list_title = new ArrayList<>();
        list_title.add("fragment1");
        list_title.add("fragment2");
        list_title.add("fragment3");
        list_title.add("fragment4");

        tab_FindFragment_title.setTabMode(TabLayout.MODE_FIXED);
        //为TabLayout添加tab名称
        tab_FindFragment_title.addTab(tab_FindFragment_title.newTab().setText(list_title.get(0)));
        tab_FindFragment_title.addTab(tab_FindFragment_title.newTab().setText(list_title.get(1)));
        tab_FindFragment_title.addTab(tab_FindFragment_title.newTab().setText(list_title.get(2)));
        tab_FindFragment_title.addTab(tab_FindFragment_title.newTab().setText(list_title.get(3)));

        fAdapter = new FragmentAdapter(getSupportFragmentManager(), list_fragment, list_title);

        vp_FindFragment_pager.setAdapter(fAdapter);

        tab_FindFragment_title.setupWithViewPager(vp_FindFragment_pager);

    }

这个时候就实现它的效果了,还是很好用的就这几部


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值