介绍
TabLayout是属于Android Design Support Library中的一个控件,顶部或者底部水平的Tab布局,滑动或者点击切换的功能,今天我们简单讲解TabLayout的使用,重点讲解如何自定义TabLayout的item,也就是每一个tab。 参考博客
使用TabLayout
1.添加依赖
compile 'com.android.support:design:23.4.0'
2.布局
通常我们都搭配ViewPager+Fragment使用。
页面用Fragment,放了一个小图标。
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:id="@+id/tablayout">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/viewpager">
3.然后是ViewPager的适配器
public class MyFragmentAdapter extends FragmentPagerAdapter {
private String [] title = {"最新日报","专题","热门","主题日报"};
private List<Fragment> fragmentList;
public MyFragmentAdapter(FragmentManager fm, List<Fragment> fragmentList) {
super(fm);
this.fragmentList = fragmentList;
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return title[position];
}
}
4.创建几个Fragment 别忘了给fragment布局
public class Theme_Fragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.theme_fragment, container,false);
return view;
}
}
5.实现
public class Main2Activity extends AppCompatActivity {
private TabLayout tablayout; //定义TabLayout
private ViewPager viewpager; //定义viewPager
private List<Fragment> fragments; //定义要装fragment的列表
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
fragments = new ArrayList<>();
tablayout = (TabLayout) findViewById(R.id.tablayout);
viewpager = (ViewPager) findViewById(R.id.viewpager);
//得到Fragment
Hot_Fragment hot_fragment = new Hot_Fragment();
News_Fragment news_fragment = new News_Fragment();
Special_Fragment special_fragment = new Special_Fragment();
Theme_Fragment theme_fragment = new Theme_Fragment();
//添加fragment
fragments.add(hot_fragment);
fragments.add(news_fragment);
fragments.add(special_fragment);
fragments.add(theme_fragment);
//得到适配器
MyFragmentAdapter adapter = new MyFragmentAdapter(getSupportFragmentManager(), fragments);
//添加适配器
viewpager.setAdapter(adapter);
//添加到tablayout
tablayout.setupWithViewPager(viewpager);
}
}
6.效果