我使用的是Android Design Library中的TabLayout。我有多个选项卡,每个选项卡在被选中时都有一个操作。因此,我有一个属性startSelection,它执行
tabLayout.getTabAt(startSelection).select();
这将选择选项卡并执行此选项卡的操作。除了第一个选项卡外,它对每个选项卡都很好用,第一个选项卡在启动时自动选择,而不需要(!)执行操作。有人对此有解决方案吗?
我不想使用onTabReselected方法,因为这会导致TabLayout的另一种行为。同样,选择第二个选项卡,然后选择第一个选项卡也不是好的解决方案。
最好的问候
6条答案
按热度按时间3xiyfsfu1#
我在实现一个自定义选项卡布局时遇到了类似的问题,启动Activity时,第一个选项卡不会显示为选中状态,但选项卡2,3,4 ...会在启动时自动选中。
帮助我的解决方案是在
onResume()
中,快速选择第二个选项卡,然后返回到第一个选项卡。ngynwnxp2#
我明白了。解决方法很简单,使用(一次)onTabReselected并覆盖侦听器。
gv8xihay3#
使用添加自定义选项卡也可以实现此TabLayout的
addTab()
方法,带有2个参数,例如//第一个参数选项卡//第二个参数集选定
//示例
v8wbuo2f4#
我有更简单解决办法
4sup72z85#
你只需要把逻辑颠倒过来
先设置onTabSelected,片段知道选择了哪个选项卡后,设置:
制表符布局.添加制表符(制表符布局.新制表符().设置文本(“持续时间”),真)
如果添加的选项卡应成为选定选项卡,则第二个参数为true
xtupzzrd6#
当你试图按语法选择第一个选项卡时,你的视图初始化还没有完成。使用句柄并等待
100ms
,然后尝试选择选项卡。在您的
onCreate()
中尝试此操作