我有Activity
和ViewPager
。 “活动”中有一个按钮,可以根据屏幕上显示的项目(片段)来更改其可见性。
问题:我无法从片段because findViewById() call returns null when invoked from the inside of fragment code中访问按钮。我还以为我可以notify activity about fragment state change,但是文档中的代码已被弃用。
问题:当特定片段在屏幕上出现/消失时,如何更改活动中的按钮?
注意:获取当前片段不是问题。我需要检测到片段已更改。
答案 0 :(得分:2)
在活动中创建SimpleOnPageChangeListener
的子类(例如,作为匿名内部类)。在该子类中,重写onPageSelected()
并根据选定的页面索引更新按钮的可见性。然后在ViewPager
上调用addOnPageChangeListener()
,提供SimpleOnPageChangeListener
子类的实例。
现在,在寻呼机中的每个页面更改上,都会调用onPageSelected()
,并且您可以根据页面更新按钮的可见性。