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); //关联TabLayout和ViewPager 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随便写了.
xxx