【问题标题】:Load data when user stops swiping in fragmentviewpager in android?当用户停止在android中的片段viewpager中滑动时加载数据?
【发布时间】:2013-07-15 10:32:42
【问题描述】:

当用户停止滑动而不是在android的fragmentviewpager中的上一个,当前,下一个模式时加载片段? 在 fragmentviewpager 中一次加载单个片段,而不是多个。

【问题讨论】:

  • 您是否尝试在加载前设置小超时?
  • 我找到了解决 setUserVisibleHint() 片段方法的方法。 @sandrstar 感谢您的宝贵时间。
  • 请把它添加为答案(带代码)并接受,这样问题就会得到解决。

标签: android android-viewpager fragment


【解决方案1】:

在片段加载时 FragmentViewPager 将当前片段的 setUserVisibleHint 设置为 true。通过它我们可以在 FragmentViewPager 中延迟加载片段。在下面的代码中,我设置了 1000 毫秒的延迟。

@覆盖 公共布尔 getUserVisibleHint() {

    boolean isVisible = super.getUserVisibleHint();
    return isVisible;
}

public Runnable handleDelays = new Runnable() {
    @Override
    public void run() {
        if (getUserVisibleHint()) {
            // Application Logic    

        }
    }
};
private Handler pagerHandler;

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (this.isVisible()) {
        if (!isVisibleToUser) {
            pagerHandler.removeCallbacks(handleDelays);
        } else {
            pagerHandler.removeCallbacks(handleDelays);
            pagerHandler.postDelayed(handleDelays, 1000);
        }
    } else {
        if (pagerHandler != null) {
            if (!isVisibleToUser) {
                pagerHandler.removeCallbacks(handleDelays);
            } else {
                pagerHandler.removeCallbacks(handleDelays);
                pagerHandler.postDelayed(handleDelays, 1000);
            }
        } else {
            pagerHandler = new Handler();
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    相关资源
    最近更新 更多