如何在TabLayout中自定义选定的选项卡指示器?

时间:2015-12-20 09:46:04

标签: java android android-viewpager android-tablayout android-touch-event

我想更改TabLayout的选定选项卡指示器,其中包含一个自定义图标,该图标应遵循相同的行为(当用户滑向下一个选项卡时,图标会相应移动)。

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

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

  1. 找到一种方法来自定义TabLayout类 用自定义图标替换“方形”。
  2. 找到一条路 用View协调用户在ViewPager上的触摸手势 自定义视图的移动(即我的图标)。

1 个答案:

答案 0 :(得分:0)

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

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

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