gpt4 book ai didi

android - 如何在将用户带到下一个选项卡之前处理 TabLayout 单击?

转载 作者:行者123 更新时间:2023-12-02 13:37:01 24 4
gpt4 key购买 nike

我有四个标签 ViewPager附于OnTabSelected .
其中一个选项卡包含表单字段,一旦用户进行任何更改,我不应该让用户移动到下一个选项卡,除非他保存更改。

(换句话说,应该在 alert 上抛出 OnTabSelected 而不是将用户带到下一个选项卡)

但我无法控制TabLayout -> "addOnTabSelectedListener"
任何帮助都会很棒

binding.tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab) {
if (State.isClear()) {
showNextTab()
} else {
showSaveSelectionAlert()
}
}

override fun onTabUnselected(tab: TabLayout.Tab) {
}

override fun onTabReselected(tab: TabLayout.Tab) {
}
})

最佳答案

引用这个answer . CustomViewPager显示不允许任何滚动,除非您通过设置 setPagingEnabled 明确允许它。为真。我的想法是拥有setPagingEnabled在用户填写完所有字段之前为 false。如果是这种情况,分页将再次启用,因此用户可以滑动到下一个选项卡。否则会出现错误信息。

我们可以进一步扩展它并使其适用于 TabLayout也是。 This answer向您展示如何禁用单击选项卡。 onTouch不过,必须以不同的方式覆盖。如果满足所有条件,则应返回 false - 表示用户可以切换选项卡。否则显示错误消息。

简而言之:借助我提供给您的链接,禁用 ViewPager 的分页和 TabLayout 的选项卡切换。满足您的条件后启用它,否则显示错误。

关于android - 如何在将用户带到下一个选项卡之前处理 TabLayout 单击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54038120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com