HorizontalScrollView+TabLayout+Fragment简单新闻类应用的头部

1.首先是添加依赖  Design包 要用到TabLayout

2.XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:orientation="vertical"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.administrator.teee.MainActivity">

    <HorizontalScrollView
        android:scrollbars="none"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
        <android.support.design.widget.TabLayout
            android:id="@+id/tab"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </android.support.design.widget.TabLayout>
    </HorizontalScrollView>
    <android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>
3.MainActivity

 private TabLayout mTab;
    private ViewPager mVp;
    private List<Fragment> listFrag=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        for (int i = 0; i <20 ; i++) {
            listFrag.add(new BlankFragment());
            mTab.addTab(mTab.newTab());
        }
        MyAdapter myAdapter = new MyAdapter(getSupportFragmentManager());
        myAdapter.setFragList(listFrag);
        mVp.setAdapter(myAdapter);
        //设置标题
        for (int i = 0; i <20 ; i++) {
            mTab.getTabAt(i).setText("新闻"+i);
        }
    }
    //找控件
    private void initView() {
        mTab = (TabLayout) findViewById(R.id.tab);
        mVp = (ViewPager) findViewById(R.id.vp);
        //关联TabLayoutViewPager
        mTab.setupWithViewPager(mVp);
    }

}
4.这里的适配器自定义 都是V4包下的

public class MyAdapter extends FragmentPagerAdapter {
    public MyAdapter(FragmentManager fm) {
        super(fm);
    }
    private List<Fragment> list;
    public void setFragList(List<Fragment> list1){
        this.list=list1;
    }
    @Override
    public Fragment getItem(int position) {
        return list.get(position);
    }

    @Override
    public int getCount() {
        return list.size();
    }
}
5.Fragment随便写了.




xxxHorizontalScrollView+TabLayout+Fragment简单新闻类应用的头部