Android:检测何时从Activity中看到来自ViewPager的片段

时间:2018-09-29 18:50:42

标签: android android-fragments android-activity android-viewpager

我有ActivityViewPager。 “活动”中有一个按钮,可以根据屏幕上显示的项目(片段)来更改其可见性。

问题:我无法从片段because findViewById() call returns null when invoked from the inside of fragment code中访问按钮。我还以为我可以notify activity about fragment state change,但是文档中的代码已被弃用。

问题:当特定片段在屏幕上出现/消失时,如何更改活动中的按钮?

注意:获取当前片段不是问题。我需要检测到片段已更改

1 个答案:

答案 0 :(得分:2)

在活动中创建SimpleOnPageChangeListener的子类(例如,作为匿名内部类)。在该子类中,重写onPageSelected()并根据选定的页面索引更新按钮的可见性。然后在ViewPager上调用addOnPageChangeListener(),提供SimpleOnPageChangeListener子类的实例。

现在,在寻呼机中的每个页面更改上,都会调用onPageSelected(),并且您可以根据页面更新按钮的可见性。