如何确定片段何时在ViewPager中可见

如何确定片段何时在ViewPager中可见

问题:碎片onResume()在……里面ViewPager在碎片实际可见之前触发。

例如,我有两个片段ViewPagerFragmentPagerAdapter..第二个片段仅供授权用户使用,我需要要求用户在片段可见时登录(使用警报对话框)。

ViewPager在第一个片段可见时创建第二个片段,以便缓存第二个片段,并在用户开始滑动时使其可见。

所以onResume()事件在第二个片段中激发,很久之后它才变得可见。这就是为什么我试图找到一个事件,当第二个片段在适当的时候显示一个对话框时,这个事件就会触发。

这是如何做到的呢?


HUH函数
浏览 585回答 3
3回答

芜湖不芜

如何确定片段何时在ViewPager中可见您可以通过重写setUserVisibleHint在你的Fragment:public class MyFragment extends Fragment {     @Override     public void setUserVisibleHint(boolean isVisibleToUser) {         super.setUserVisibleHint(isVisibleToUser);         if (isVisibleToUser) {         }         else {         }     }}

米琪卡哇伊

这似乎恢复了正常onResume()你期望的行为。它很好地发挥了按下主键离开应用程序,然后重新进入应用程序。onResume()不会连续调用两次。@Overridepublic void setUserVisibleHint(boolean visible){     super.setUserVisibleHint(visible);     if (visible && isResumed())     {         //Only manually call onResume if fragment is already visible         //Otherwise allow natural fragment lifecycle to call onResume         onResume();     }}@Overridepublic void onResume(){     super.onResume();     if (!getUserVisibleHint())     {         return;     }     //INSERT CUSTOM CODE HERE}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android