代码之家  ›  专栏  ›  技术社区  ›  Andreas

如何在任意位置而不是最后一个位置插入制表符?

  •  1
  • Andreas  · 技术社区  · 6 年前

    我可以在 TabHost 通过使用 addTab() 方法。但这将始终将选项卡添加为最后一个选项卡。如何将制表符添加到 标签栏 是吗?例如,如何将新选项卡作为第一个选项卡插入或插入到其他任意位置?

    我不想使用xml,但是所有的事情都应该通过编程来完成。

    我想到的一个解决方案是首先通过调用 clearAllTabs() 标签栏 然后按照我想要的顺序重新添加所有选项卡。但这当然是一个非常老套的解决方案。不是有更好的吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Gennadii Saprykin    6 年前

    显然没有。如果你看看 TabHost 源代码,添加内容的唯一方法 mTabSpecs 是通过 addTab 方法。扩展类也没有帮助,因为列表是 private 是的。

    所以,正如你所说,使用 clearAllTabs() 是最不“老套”的方式。我认为用例本身是非常重要的,所以我可以理解为什么实现行为不是那么简单。但我不认为这是一个“非常老套”的解决方案。没有java反射,它只是使视图容器失效并向其中添加新的视图列表。它不会影响性能、内存、可读性,如果sdk更新或类似的东西,它也不会中断。所以我很确定一切都很好。