如何在TabLayout中监听选项卡更改?

时间:2016-09-20 15:02:08

标签: android android-tablayout

我正在使用Fragment课程和TabLayout ViewPager来实施滑动标签。

我有3个java类:

(OneFragment扩展了Fragment,TwoFragment扩展了Fragment,ThreeFragment扩展了Fragment,MainActivity扩展了AppCompatActivity)

此外,我为所有这些类提供了4个不同的xml文件。实际上,我根据this tutorial

设计了我的代码

现在我想在用户在标签之间切换时收听。例如,当用户将第一个选项卡转到第二个选项卡时,我希望执行此选项:

Toast t = Toast.makeText(getActivity(),"You are exit from 1st tab", Toast.LENGTH_LONG);
t.show();

或者当用户从2转到第1或第3个标签时,应执行此操作:

Toast t = Toast.makeText(getActivity(),"You are exit from 2nd tab", Toast.LENGTH_LONG);
t.show();

有趣的是,我无法为TabLayout提供任何答案,尽管Tabhost有几十个答案。

如何设计我的代码以了解"哪个标签正在更改,什么是以前的标签?"在TabLayout

注意:我用过,试图覆盖onDestroyView()onDestroy()onHiddenChanged(),但我无法解决问题。只有onDestroy()有效,但当用户退出应用程序时它也能正常工作。

1 个答案:

答案 0 :(得分:1)

您需要为此实现TabLayout.OnTabSelectedListener界面。

使用addOnTabSelectedListenerremoveOnTabSelectedListener方法执行此操作。请注意,setOnTabSelectedListener现已弃用。