页签指示器
【摘要】 这篇文章主要是viewpager里面嵌套fragment ,同时在头部添加页签指示器..废话不多说,直接上代码~1.首先,创建布局.一个LinearLayout 包裹一个 TabLayout 和 一个viewpager<?xml version="1.0" encoding="utf-8"?><LinearLayout android:id="@+id/activity_main" ...
这篇文章主要是viewpager里面嵌套fragment ,同时在头部添加页签指示器..废话不多说,直接上代码~
1.首先,创建布局.一个LinearLayout 包裹一个 TabLayout 和 一个viewpager
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/activity_main" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.tablayout.MainActivity"> <android.support.design.widget.TabLayout android:id="@+id/tablayout" android:layout_width="match_parent" android:layout_height="wrap_content"/> <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>
2.利用butterknife找到tablayout和viewpager( ps:butterknife和findViewById一个道理,没用过butterknife,可以使用findViewById)
//使tabLayout 与 viewpager 关联起来 mTabLayout.setupWithViewPager(mViewPager); //设置viewpager 适配器 **这里我们使用的适配器继承的是 FragmentPagerAdapter ViewpagerAdapter adapter = new ViewpagerAdapter(getSupportFragmentManager()); mViewPager.setAdapter(adapter); //定义fragment集合 List<Fragment> fragmentList = new ArrayList<>(); fragmentList.add(new BlankFragment()); fragmentList.add(new BlankFragment()); fragmentList.add(new BlankFragment()); //往适配器添加参数 adapter.addFragment(fragmentList);
下面需要注意的是我们使用的适配器继承FragmentPagerAdapter,搭配fragment很好用. 在适配器中重写getPageTitle(),为tabLayout添加标签
class ViewpagerAdapter extends FragmentPagerAdapter{ //穿建集合,用来盛装fragment List<Fragment> mList = new ArrayList<>(); //自定义方法,用来添加fragment public void addFragment( List<Fragment> list){ this.mList.addAll(list); //不要忘记更新适配器哦~ notifyDataSetChanged(); } public ViewpagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return mList.get(position); } @Override public int getCount() { return mList.size(); } String[] tabs = { "标签1","标签2","标签3" }; //重写此方法,给tabLayout添加标签 @Override public CharSequence getPageTitle(int position) { return tabs[position]; } } 最后,使用fragment不要导错包,我们使用的是V4包下 ,使用的fragment管理器也是V4的.
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)