您的位置:首页 > 其它

实现TabLayout+ViewPager+Fragment头目的联动模式

2017-10-25 20:40 453 查看
//添加依赖

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

//这个依赖可以直接在系统找

//首先布局  应该能看懂吧

<?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"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context="bwie.gouzeng.Main2Activity">

    <android.support.design.widget.TabLayout

        android:id="@+id/tablelayout"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"></android.support.design.widget.TabLayout>

    <android.support.v4.view.ViewPager

        android:id="@+id/viewpager"

        android:layout_width="match_parent"

        android:layout_height="match_parent"></android.support.v4.view.ViewPager>

</LinearLayout>

//Activity

import android.os.Bundle;

import android.support.design.widget.TabLayout;

import android.support.v4.app.Fragment;

import android.support.v4.view.ViewPager;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import java.util.ArrayList;

import java.util.List;

import static bwie.gouzeng.R.id.tablelayout;

public class Main2Activity extends AppCompatActivity {

    private String[] title = new String[]{"最新日报","专栏","热门","主题日报"};

    private TabLayout tabLayout;

    private ViewPager viewpager;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main2);

        tabLayout = (TabLayout) findViewById(tablelayout);

        viewpager = (ViewPager) findViewById(R.id.viewpager);

        for (String str : title){

            tabLayout.addTab(tabLayout.newTab().setText(str));

        }

        List<Fragment> fragments=new ArrayList<>();

        fragments.add(new Fragment1());

        fragments.add(new Fragment2());

        fragments.add(new Fragment3());

        fragments.add(new Fragment4());

        MyAdapter adapter=new MyAdapter(getSupportFragmentManager(),title,fragments);

        //把集合放入适配器

        adapter.setFragments(fragments);

        //给ViewPager设置适配器

        viewpager.setAdapter(adapter);

        for (int i = 0; i <fragments.size();i++){

            tabLayout.addTab(tabLayout.newTab());

        }

        //使tablayout和viewPager关联

        tabLayout.setupWithViewPager(viewpager);

        tabLayout.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

            }

        });

    }

}

//适配器

import android.support.v4.app.Fragment;

import android.support.v4.app.FragmentManager;

import android.support.v4.app.FragmentPagerAdapter;

import java.util.List;

public class MyAdapter extends FragmentPagerAdapter {

    private String[] title;

    private List<Fragment> fragments;

    public MyAdapter(FragmentManager fm, String[] title, List<Fragment> fragments) {

        super(fm);

        this.title = title;

        this.fragments = fragments;

    }

    public void setFragments(List<Fragment> fragments) {

        this.fragments = fragments;

    }

    @Override

    public Fragment getItem(int position) {

        return fragments.get(position);

    }

    @Override

    public int getCount() {

        return fragments.size();

    }

    @Override

    public CharSequence getPageTitle(int position) {

        return title[position];

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: