我正在为$pizza = "05.500";
$pieces = explode(".", $pizza);
echo $pieces[0];
echo '/';
echo $pieces[1];
实施无休止的数据加载。当软件检测到要显示的最后一个项目时,它会下载新项目并调用以下函数(在主线程中运行它):
RecyclerView
但是,如果我快速滚动并且在接收新数据之前显示最后一项,则int visibleItemCount = numberOfItemsPerRow;
int pastVisiblesItems = ((GridLayoutManager)recyclerView.getLayoutManager()).findLastVisibleItemPosition();
int totalItemCount = mLayoutManager.getItemCount();
if (loading) {
if ((visibleItemCount+pastVisiblesItems) >= totalItemCount) {
.
.
.
//After downloading data
loading = false;
getActivity().runOnUiThread(new Runnable() {
public void run() {
mAdapter.notifyDataSetChanged();
}
});
}
不起作用。只有当我再次向上和向下滚动时,为了强制渲染新数据,才会显示这些新数据。
对于什么是错误的任何想法?
答案 0 :(得分:0)
您可以尝试:
RecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
}
});
修改强>
您可以使用它来确定您使用的正确位置, 我敢打赌你的立场没有反映出合适的条件:
编辑2:
我有类似的方法:
我有适配器
public class MyAdapter extends RecyclerView.Adapter<ItemCardAdapter.ViewHolder>
在适配器中我得到了一个列表:
List<T> _itemList;
我有方法add(item)
/ addAll(collection)
/ clear()
来管理商品列表
三种重写方法:
@Override
public int getItemCount() {
return _itemList.size();
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) { }
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {}
持有人:
public class ViewHolder extends RecyclerView.ViewHolder {}
我通过Adapter.add();
,clear();
管理数据,然后我将Adapter.notifidatasetChanged();
称为UI线程上的Runnable我没有像您这样的问题
您使用哪些库?
我是: