Material Design学习之 TabLayout(ViewPager实现页卡最简单方法)
2017-05-31 15:19
549 查看
在开发中,我们常常需要ViewPager结合Fragment一起使用,我们可以使用三方开源的PagerSlidingTabStrip去实现,或者viewpagerindicator,我一般都偏向前者。现在我们可以使用Design support library库的TabLayout去实现了。
实现方法
1、gradle文件中添加依赖
com.android.support:design:26.0.0
2、设置布局文件
这里面没有什么特别的,就是添加了一个TabLayout和Viewpager作为上下的布局。tablayout中tabSelectedTextColor指选中时文字颜色,tabIndicatorColor指滚动条颜色。
3、代码实现
其中MyFragmentPagerAdapter是ViewPager的适配器
public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> mList = new ArrayList<>();
private List<String> tabTitles;
public MyFragmentPagerAdapter(FragmentManager fm, List<Fragment> list, List<String> tabTitles) {
super(fm);
this.mList = list;
this.tabTitles = tabTitles;
}
@Override
public Fragment getItem(int position) {
return mList.get(position);
}
@Override
public int getCount() {
return mList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tabTitles.get(position);
}
}
运行效果图:
注:我这里是改变的背景颜色,我把下面的滑动条的颜色改变成了透明色,所以是看不见下面的滑动条的,可以自己改一下颜色值。
实现方法
1、gradle文件中添加依赖
com.android.support:design:26.0.0
2、设置布局文件
<?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:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.design.widget.TabLayout android:id="@+id/mWritTable" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabBackground="@drawable/tab_design_color" app:tabIndicatorColor="@android:color/transparent" app:tabSelectedTextColor="@color/name_color" app:tabTextColor="@color/edt_color"> </android.support.design.widget.TabLayout> <View style="@style/view_line" /> <android.support.v4.view.ViewPager android:id="@+id/mWritViewPager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> </LinearLayout>
这里面没有什么特别的,就是添加了一个TabLayout和Viewpager作为上下的布局。tablayout中tabSelectedTextColor指选中时文字颜色,tabIndicatorColor指滚动条颜色。
3、代码实现
public class MainActivity extends AppCompatActivity { private TabLayout mTabLayout; private ViewPager mViewPager; private MyFragmentPagerAdapter mAdapter; private List<Fragment> mList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init() { mTabLayout=(TabLayout)findViewById(R.id.mWriteTable); mViewPager=(ViewPager)findViewById(R.id.mWriteViewPager); mList = new ArrayList<>(); mList.add(new Tab1()); mList.add(new Tab2()); ArrayList<String> tabTitle =new ArrayList<String>(); tabTitle.add("美女") tabTitle.add("帅哥"); mAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(), mList, tabTitle); mViewPager.setAdapter(mAdapter); mTabLayout.setupWithViewPager(mViewPager); } }
其中MyFragmentPagerAdapter是ViewPager的适配器
public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> mList = new ArrayList<>();
private List<String> tabTitles;
public MyFragmentPagerAdapter(FragmentManager fm, List<Fragment> list, List<String> tabTitles) {
super(fm);
this.mList = list;
this.tabTitles = tabTitles;
}
@Override
public Fragment getItem(int position) {
return mList.get(position);
}
@Override
public int getCount() {
return mList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tabTitles.get(position);
}
}
运行效果图:
注:我这里是改变的背景颜色,我把下面的滑动条的颜色改变成了透明色,所以是看不见下面的滑动条的,可以自己改一下颜色值。
如有不对的地方欢迎指正。
相关文章推荐
- Android高级UI之ViewPager实现页卡的最新方法-简洁的TabLayout
- Tablayout+Viewpager+recyclerview简单实现
- Android TabLayout+ViewPager+Fragment简单实现
- SmartTabLayout+PtrFrameLayout+ViewPager+Fragment简单实现
- TabLayout+ViewPager 简单实现app底部Tab布局
- Android Studio导入第三方包(资源)方法,ViewPager+TabLayout的使用,ViewPager单独使用实现无限循环
- ViewPager实现页卡的最新方法--简洁的TabLayout(AndroidSupportDesign)
- ViewPager实现页卡的最新方法--简洁的TabLayout(谷歌支持包)
- TabLayout+ViewPager 简单实现app底部Tab布局
- ViewPager实现页卡的最新方法--简洁的TabLayout(谷歌支持包)
- ViewPager实现页卡的最新方法--简洁的TabLayout(谷歌支持包)
- ViewPager实现页卡的最新方法--简洁的TabLayout(谷歌支持包)
- 利用TabLayout(5.0新技术)+ViewPager+Fragment方法实现书签导航
- ViewPager实现页卡的最新方法--简洁的TabLayout(谷歌支持包)
- ViewPager+TabLayout滑动简单实现
- TabLayout+ViewPager+Fragment简单实现横向滑动菜单
- ViewPager实现页卡的最新方法--简洁的TabLayout(谷歌支持包)
- 最简单地实现标签页导航-----TabLayout+ViewPager
- ViewPager实现页卡的最新方法--简洁的TabLayout(谷歌支持包)
- Android中TabLayout+ViewPager 简单实现app底部Tab导航栏