为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUH函数 2019-06-13 17:01:27
如何确定片段何时在ViewPager中可见问题:碎片onResume()在……里面ViewPager在碎片实际可见之前触发。例如,我有两个片段ViewPager和FragmentPagerAdapter..第二个片段仅供授权用户使用,我需要要求用户在片段可见时登录(使用警报对话框)。但ViewPager在第一个片段可见时创建第二个片段,以便缓存第二个片段,并在用户开始滑动时使其可见。所以onResume()事件在第二个片段中激发,很久之后它才变得可见。这就是为什么我试图找到一个事件,当第二个片段在适当的时候显示一个对话框时,这个事件就会触发。这是如何做到的呢?
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

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

您可以通过重写setUserVisibleHint在你的Fragment:

public class MyFragment extends Fragment {
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser) {
        }
        else {
        }
    }}


查看完整回答
反对 回复 2019-06-13
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

这似乎恢复了正常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}


查看完整回答
反对 回复 2019-06-13
  • 3 回答
  • 0 关注
  • 584 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信