关于底部导航栏使用CommonTabLayout,需要动态加载tab页的问题

之前也有这个问题,但是由于需要动态加载的页面不是很多,比如说有5个fragment对应底部导航栏ABCDE。需要根据用户的角色权限去动态的加载,那么有的用户权限是4个,就有可能是ABDE或者BCDE,有的是三个 有的是两个。当时是自己写了一长串的if语句去判断。可现在又增加了一些权限,就不得不正视这个问题了。

最简单的写法就是有多少个权限就去加载多少个页面,所有的导航栏都写满。满上!然后再去将没有的权限对应的tab不占位隐藏掉就好了。把CommonTabLayout拉出来看了一下,没有找到子控件并去隐藏的方法,ok~那拉出来自己干。

关于底部导航栏使用CommonTabLayout,需要动态加载tab页的问题

这是对象需要实现的接口属性,只有三个 一个是tab的标题 一个是选中的图标 一个未选中的图标 。那我们自己加一个是否隐藏tab的属性

关于底部导航栏使用CommonTabLayout,需要动态加载tab页的问题

然后我们复制一个CommonTabLayout类出来,在notifyDataSetChanged方法里面加上对隐藏属性的判断

关于底部导航栏使用CommonTabLayout,需要动态加载tab页的问题

这样我们在setTabData的时候赋值true和false就可以了