直接上效果图
首先看布局
<?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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
app:tabMode="scrollable"//这句话表示tab是可以滚动的
android:layout_width="match_parent"
android:layout_height="43dp">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="#D1EEEE"
android:layout_weight="1" />
</LinearLayout>
MainActivity
package com.viewpager02;
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.widget.RadioButton;
import android.widget.RadioGroup;
import com.viewpager02.adapter.MyAdapter;
import com.viewpager02.fragments.FourFragment;
import com.viewpager02.fragments.OneFragment;
import com.viewpager02.fragments.ThreeFragment;
import com.viewpager02.fragments.TwoFragment;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private int currentPosition;
private ViewPager vp;
private List<Fragment> list;
private List<String> tab_list;
private MyAdapter adapter;
private TabLayout tabLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp = (ViewPager) findViewById(R.id.vp);
tabLayout = (TabLayout) findViewById(R.id.tablayout);
initData();
initView();
}
private void initView() {
adapter = new MyAdapter(getSupportFragmentManager(),list,tab_list);
vp.setAdapter(adapter);
tabLayout.setupWithViewPager(vp);
}
private void initData() {
list = new ArrayList<>();
list.add(new OneFragment());
list.add(new TwoFragment());
list.add(new ThreeFragment());
list.add(new ThreeFragment());
list.add(new ThreeFragment());
list.add(new ThreeFragment());
list.add(new ThreeFragment());
list.add(new FourFragment());
tab_list = new ArrayList<>();
tab_list.add("全部");
tab_list.add("创业");
tab_list.add("历史");
tab_list.add("家庭");
tab_list.add("伦理");
tab_list.add("佛学");
tab_list.add("道德");
tab_list.add("法律");
}
}
MyAdapter
package com.viewpager02.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import java.util.List;
/**
* Created by Administrator on 2017/8/8.
*/
public class MyAdapter extends FragmentStatePagerAdapter {
private List<Fragment> list;
private List<String> tab_list;
public MyAdapter(FragmentManager fm, List<Fragment> list, List<String> tab_list) {
super(fm);
this.list = list;
this.tab_list = tab_list;
}
@Override
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getCount() {
return list==null?0:list.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tab_list.get(position%tab_list.size());
}
}