TabLayout的滑动回弹等问题

转载请注明出处:http://blog.csdn.net/kiddTeb/article/details/52588944

前言

  • 对于实现滑动标签页,我们可能会使用第三方开源库,比如PagerSlidingTabStrip或者viewpagerindicator,自从官方除了TabLayout可能更多人去选择使用TabLayout+ViewPager去实现,在这里就不说如何去使用,网上教程有很多也很详细。现在主要总结一下在使用过程中遇到的一些问题,总结一下。

NoClassDefFoundError

  • 我在使用的时候,发生了这个错误java.lang.NoClassDefFoundError: android.support.v7.widget.TintManager,这个找不到类的状况困扰了我好久,最后才发现是因为包导入的问题。在我们导入TabLayout的依赖包的时候,一定要注意
compile 'com.android.support: design:23.4.0'
compile 'com.android.support: appcompat-v7:23.4.0'

它们两个的版本号,一定要 * 一致 *(不一定是上面的版本)。否则会出现上面的错误信息。
有时候出现问题了,可以去考虑一下版本号是否一致的问题。

滑动没有回弹效果

  • 也就是滑动的时候会卡在中间,如图所示
    这里写图片描述
  • 出现这个状况,你可以去查查自己的代码,是否出现 ↓
mAdapter = new ViewPagerAdapter(getFragmentManager() , mFragment , mTitle) ;

在new一个适配器的时候,是不是通过getFragmentManager()来获取Manager的,如果是的话,那就有问题了,因为调用这个方法返回的是该 fragment 所在 activity 的 FragmentManager,应该使用 getChildFragmentManager 方法获取到的 FragmentManager,也就是这样 ↓

mAdapter = new ViewPagerAdapter(getChildFragmentManager() , mFragment , mTitle) ;

这样就不会出现之前的那状况了

app:tabMode

  • 有两种模式,一种是fixed,还有一种是scrollable。这两个是有区别的。
  • scrollable:模式,在标签页少的时候,会向一边挤过去导致不会占满父布局的宽度,这样显得极其不美观,这种模式只适合于当有很多个标签页的时候就可以去使用这个模式,这个时候就不会显得每个标签宽度太过于窄小。
  • fixed:使用这种模式,就会在父布局的宽度范围内,均匀分布每个标签标题,使得导航栏的每个标签显得美观自然,适合少的标签页情况,如果多的话,就会显得每个标签宽度太过于窄小。

你可能感兴趣的:(TabLayout的滑动回弹等问题)