我想更改带有自定义图标的TabLayout的所选标签指示器,该标签指示器应遵循相同的行为(当用户向下一个标签滑动时,图标将相应移动)。

该类中没有默认方法,因为您只能实现选项卡的布局自定义。我决定看一下TabLayout的source code,但1)我无法在类中找到定义制表符指示器绘制时形状的定义的要点,以及2)我找不到甚至完全导入该类。
我还希望-如果可能的话-避免使用任何第三方库,因为该项目已经非常繁重。

你有什么建议吗?我可以看到两种可能的方法:


寻找一种方法来自定义TabLayout类以
用自定义图标替换“方形”。
找到一种方法
将用户在ViewPager上的触摸手势与
自定义视图(即我的图标)的移动。

最佳答案

我目前可以想到的一种解决方案是,您必须创建一个自定义视图布局文件来表示所需的“选定选项卡”,并在XML文件中将android:tabStripEnabled="false"注释为您的TabLayout

之后,您必须在tablayout实例上注册一个侦听器,并检查选择了哪个索引,并使用给定索引调用TabLayout.getTabAt(i).setCustomView(yourSelectedCustomView)

在这里看看如何为TabLayout创建自定义视图:https://stackoverflow.com/a/48258731/4974461

07-25 22:09
查看更多