高仿陌陌选项卡:文字大小变化的SlidingScaleTabLayout
本文是在简书作者珠穆朗玛小王子的一篇文章,仿陌陌选项卡:文字大小变化的SlidingScaleTabLayout的基础上做了一定程度的优化,使得最终的效果更加接近陌陌的tab切换。
优化项:
解决了文字切换抖的厉害的问题
可以设置选中未选中的字体大小以及颜色
如果想要了解技术原理,请先参考简书作者的这边文章https://www.jianshu.com/p/252650d07340 ,我这边就不在重复这些内容了。
核心类是SlidingScaleTabLayout.java,地址是https://github.com/xingstarx/FlycoTabLayout/blob/master/FlycoTabLayout_Lib/src/main/java/com/flyco/tablayout/SlidingScaleTabLayout.java。用法可以参考demo工程,可以将https://github.com/xingstarx/FlycoTabLayout工程clone下来,编译运行后,观察demo的效果,也就是SlidingTabLayout2这个Activity的运行效果。
这里只介绍下,优化封装好之后的关键用法
SlidingScaleTabLayout tabLayout_1 = (SlidingScaleTabLayout) findViewById(R.id.tl_1); ViewPager viewPager = (ViewPager) findViewById(R.id.vp); mAdapter = new MyPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(mAdapter); tabLayout_1.setViewPager(viewPager);
private class MyPagerAdapter extends FragmentPagerAdapter { public MyPagerAdapter(FragmentManager fm) { super(fm); } // PagerAdapter中的getItemPosition实现,很关键的地方 @Override public int getItemPosition(@NonNull Object object) { View view = (View) object; return (int) view.getTag(); } }
跟FlycoTabLayout项目中的其他Layout的用法比较相似,只有一点点的不同。
还是上张图,无图无真相: