ViewPager + Volley 延迟加载 = 混乱
ViewPager + Volley lazy load = mess
所以基本上,我在一个片段中有一个 RecyclerView
,设置在 onCreateView()
中,我还在 onCreateView()
中放置了 volley 请求,它更新了 Recycler adapter
从服务器延迟加载的新数据。一切都很好,直到我开始在页面之间滑动得太快 - 因为 onCreateView() 正在调用滑动时围绕当前片段的片段 - 截击将具有相同参数的多个数据发送到服务器 - 我的 RecyclerView
变得相同数据几次(取决于我滑动的速度)。
我放了类似的东西:
static boolean requestAllowed = true;
@OverRide public View onCreateView() {
inflater etc..
if(requestAllowed) {
requestAllowed = false;
sendingVolleyRequest();
}
然后在 sendingVolleyRequest()
内,我输入了 onResponse()
或 onErrorResponse()
requestAllowed = true;
。
但是,它会通过它并发送请求而不管该语句(可能是线程问题),所以我只是想知道 - 除了禁止在一行(如果列表在更新前完成加载后更新,将禁止获取更新)。预先感谢您,很抱歉没有提供代码。
在您的 viewPager 上实施 onPageChangedListener()
并在 onPageSelected()
方法中发送 volly 请求。
所以基本上,我在一个片段中有一个 RecyclerView
,设置在 onCreateView()
中,我还在 onCreateView()
中放置了 volley 请求,它更新了 Recycler adapter
从服务器延迟加载的新数据。一切都很好,直到我开始在页面之间滑动得太快 - 因为 onCreateView() 正在调用滑动时围绕当前片段的片段 - 截击将具有相同参数的多个数据发送到服务器 - 我的 RecyclerView
变得相同数据几次(取决于我滑动的速度)。
我放了类似的东西:
static boolean requestAllowed = true;
@OverRide public View onCreateView() {
inflater etc..
if(requestAllowed) {
requestAllowed = false;
sendingVolleyRequest();
}
然后在 sendingVolleyRequest()
内,我输入了 onResponse()
或 onErrorResponse()
requestAllowed = true;
。
但是,它会通过它并发送请求而不管该语句(可能是线程问题),所以我只是想知道 - 除了禁止在一行(如果列表在更新前完成加载后更新,将禁止获取更新)。预先感谢您,很抱歉没有提供代码。
在您的 viewPager 上实施 onPageChangedListener()
并在 onPageSelected()
方法中发送 volly 请求。