当我从一个选项卡单击到另一个选项卡时,如何使TabLayout中的选项卡不可滚动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当我从一个选项卡单击到另一个选项卡时,如何使TabLayout中的选项卡不可滚动相关的知识,希望对你有一定的参考价值。

我在ViewPager中从一个选项卡片段滑动到另一个选项卡片段时成功停止了滚动,现在我无法弄清楚如何对Tab Bar执行相同操作。目前,如果您在一个选项卡之间单击另一个选项卡,则选项卡将从选项卡滚动当你在标签之间点击时,我想让它停止滚动并更像在Facebook Messenger中工作。

我创建了一个CustomViewPager来停止ViewPager选项卡滚动:

enter image description here

在XML文件中我有:

    <com.example.myname.tabbar.CustomViewPager/>

我尝试为CustomTabBar创建几个不同的超类,但没有任何效果。我使用了ViewPager,TabLayout.tab,PagerTabStrip,ViewPager,ViewPagerOnTabSelectedListener,CustomViewPager,但这些都不起作用。我已经尝试了各种代码,我已经在StackOverflow上查找过,但没有任何效果。

如何在TabLayout中单击选项卡片段时禁用片段之间的滚动?

答案

要使TabLayout不可滚动,请执行以下操作:

在代码中:myTabLayout.setTabMode(TabLayout.MODE_FIXED);我认为以上,即以编程方式设置它适合您。

在XML应用程序中:tabMode =“fixed”

希望这对你有所帮助。

另一答案

我发现这个问题的解决方案对我有用。在tabLayout中的不同选项卡之间单击时,它停止了滚动效果。

我在CustomViewPager.java中添加了以下代码:

@Override
public void setCurrentItem(int item, boolean smoothScroll) {
    super.setCurrentItem(item, false);
}

@Override
public void setCurrentItem(int item) {


    super.setCurrentItem(item, false);

}

以上是关于当我从一个选项卡单击到另一个选项卡时,如何使TabLayout中的选项卡不可滚动的主要内容,如果未能解决你的问题,请参考以下文章

当我单击“AboSee”选项卡时,它会打开选​​项卡,但不显示选项卡栏

单击选项卡时如何阻止页面提交?

使用tabview更改选项卡时如何使SwiftUI中的计时器保持触发

当我在选项卡布局中更改选项卡时,回收站视图项目正在增加

单击 QDockWidget 的选项卡时的通知?

将 TabBarView 中的其他选项卡更改为其他选项卡时,键盘仍然显示