Android修行手册 - TabLayout全解析(上)-常用方法

2,206 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)

欢迎关注公众号【空名先生】获取更多资源和交流!

👉前提

这是小空坚持写的Android新手向系列,欢迎品尝。

新手(√√√)

大佬(√)

👉实践过程

Hello,大家好啊,我是小空,今天带大家了解学习下TabLayout控件。注意是TabLayout而不是TableLayout。我记着Android发展的前期这种布局都是靠大家自定义的,随着后来官方的不断更新,UI库和API不断丰富,官方也有了TabLayout导航组件。

虽然三方或自定义都可以实现但是不论后期多人维护性以及定制性都受到一定的闲置。而官方组件大概率可以避免这些问题,推荐熟练使用官方控件。

以前使用TabLayout或者老项目使用TabLayout需要手动导入Material design包,如果是近期新创建的项目默认就带了。如果写XML布局的时候没有代码提示,则去项目app的build.gradle文件中验证下有没有该依赖。

dependencies {
     //最新版已经到了1.7.x版本了
    implementation 'com.google.android.material:material:1.3.0'
}

如果你看到有的依赖是support:design,不要慌只是有点旧而已,最新的已经是上面的包了,而且之前的包谷歌官方已经不维护了。

😜常用方法

  • addTab(TabLayout.Tab tab,boolean setSelected):向TabLayout中添加选项卡,并设置选中。
  • addTab(TabLayout.Tab tab,int position):向TabLayout中添加选项卡。
  • addTab(TabLayout.Tab tab):向TabLayout中添加选项卡。
  • addTab(TabLayout.Tab tab,int position,boolean setSelected):向TabLayout中添加选项卡。
  • getSelectedTabPosition(): 表示返回当前所选标签的位置索引。
  • getTabAt(int index):返回类型为TabLayout.Tab,表示获取指定位置的tab。
  • getTabCount(): 表示返回当前TabLayout中选项卡数量。
  • getTabGravity():表示返回当前TabLayout的对齐方式。
  • setTabGravity(int gravity):设置TabLayout的布局方式,GRAVITY_CENTER (内容中心显示) 和 GRAVITY_FILL (内容尽可能充满TabLayout)。。
  • getTabMode():表示返回TabLayout的行为模式, 是固定的还是可滑动的(fixed或scrollable)。
  • setTabMode(int mode):设置tab选项卡的行为模式, 是fixed还是scrollable。
  • getTabTextColors():表示返回选项卡的不同状态(正常,已选择)的文本颜色属性,用于TextView.setTextColor(getTabTextColors())。
  • setTabTextColors(int normalColor,int selectedColor):设置用于item选项卡在不同状态(常规,选定)的文字颜色。
  • clearOnTabSelectedListeners():删除该TabLayout所有以前添加的OnTabSelectedListeners事件。
  • removeOnTabSelectedListener(TabLayout.OnTabSelectedListener listener):因为监听事件是addOnTabSelectedListener是添加形式,里面是维护监听集合,所以remove支持删除指定的之前添加过的某个OnTabSelectedListener
  • removeAllTabs():从名字就看出来是删除所有的item。
  • removeTab(TabLayout.Tab tab):从布局中删除某个选项卡item。
  • removeTabAt(int position):从布局中指定位置的选项卡,记得做position验证,超出了数组长度会跑异常。
  • setScrollPosition(int position,float positionOffset,boolean updateSelectedText):一般和viewpager结合的时候使用,表示设置选项卡的位置。位置int:表示要滚动的位置。positionOffset: 表示从位置偏移的值。 updateSelectedText: 表示是否更新文本的选择状态。
  • setSelectedTabIndicatorColor(int color):设置选中的tab的指示器(下划线)颜色。
  • setSelectedTabIndicatorHeight(int height):设置选中的tab的指示器的高度。
  • setupWithViewPager(ViewPager viewPager,boolean autoRefresh):当更改PagerAdapter时,TabLayout是否更新由autoRefresh是true还是false决定。
  • setupWithViewPager(ViewPager viewPager):将TabLayout与ViewPager结合进行联动。

👉其他

📢作者:小空和小芝中的小空

📢转载说明-务必注明来源:芝麻粒儿 的个人主页 - 专栏 - 掘金 (juejin.cn)

📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。