【发布时间】:2018-06-11 05:10:45
【问题描述】:
为什么没有人帮助我???我真的需要你的帮助
在我的应用程序中,我想使用 PullToRefresh 和 LazyLoader 功能,为此我编写以下代码并为我工作。
但我有一个问题,当 PullToRefresh recyclerView 和滚动时 recyclerView 不显示更多项目。
我的意思是:当使用 pullToRefresh 时,则不起作用 lazyLoader!
我的代码:
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
Constants.listeners.add(this);
View v = inflater.inflate(R.layout.fragment_auction_current_tab, null);
ButterKnife.bind(this, v);
context = getActivity();
handler = new Handler();
list = v.findViewById(R.id.list);
prefsUtils = new PrefsUtils(getActivity());
apis = ApiClient.getClient().create(APIs.class);
swipeToRefresh = v.findViewById(R.id.swipeToRefresh);
jwtToken = Constants.settings.getString("jwt_token", "");
list_item = getActivity().findViewById(R.id.list_item);
linearLayoutManager = new LinearLayoutManager(context);
auctionListAdapter = new AuctionsListAdapter(context, todayModel, R.layout.list_item_auction_normal_new);
list.setLayoutManager(linearLayoutManager);
list.setHasFixedSize(true);
list.setAdapter(auctionListAdapter);
list.setOnScrollListener(new EndlessRecyclerLinearPage(linearLayoutManager) {
@Override
public void onLoadMore(final int current_page) {
miniLoader.setVisibility(View.VISIBLE);
Call<AuctionsListResponse> call = apis.getTodatAuctions(jwtToken, current_page, 10);
call.enqueue(new Callback<AuctionsListResponse>() {
@Override
public void onResponse(Call<AuctionsListResponse> call, Response<AuctionsListResponse> response) {
if (response.isSuccessful()) {
if (response.body() != null) {
if (response.body().getRes() != null) {
if (response.body().getRes().getToday().size() > 0 && response.body().getRes().getToday() != null) {
miniLoader.setVisibility(View.GONE);
auctionListAdapter.addNewItem(response.body().getRes().getToday());
} else {
miniLoader.setVisibility(View.GONE);
}
}
}
}
}
@Override
public void onFailure(Call<AuctionsListResponse> call, Throwable t) {
}
});
}
});
getData();
swipeToRefresh.setColorSchemeResources(R.color.colorAccent);
swipeToRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
getData();
}
});
return v;
}
private void getData() {
Call<AuctionsListResponse> call = apis.getTodatAuctions(jwtToken, 1, 10);
call.enqueue(new Callback<AuctionsListResponse>() {
@Override
public void onResponse(Call<AuctionsListResponse> call, Response<AuctionsListResponse> response) {
if (response.isSuccessful()) {
if (response.body() != null) {
if (response.body().getRes() != null) {
if (response.body().getRes().getToday().size() > 0 && response.body().getRes().getToday() != null) {
todayModel.clear();
todayModel.addAll(response.body().getRes().getToday());
auctionListAdapter.notifyDataSetChanged();
itemsLoader.setVisibility(View.GONE);
if (swipeToRefresh != null) {
swipeToRefresh.setRefreshing(false);
}
}
}
}
}
}
@Override
public void onFailure(Call<AuctionsListResponse> call, Throwable t) {
}
});
}
}
我该如何解决这个问题?
【问题讨论】:
-
孔博士:你已经被告知here你不应该对别人SHOUT,不是吗?如果您的问题中唯一的变化是昵称变化,您真的认为您会得到任何答案吗?
-
@pskink,好的,对不起,亲爱的,但没有人帮助我吗?我需要帮助:(
-
人们会尽可能提供帮助,如果他们注意到您的问题,您真的不应该在问题的第一行为此哭泣。
-
你能解释一下你的目标是什么吗?你的问题令人困惑。使用
SwipeRefreshLayout刷新?哪个部分不起作用?它抛出异常?数据没有更新? -
@YosiPramajaya,是的,使用 pullToRefresh 我使用了
SwipeRefreshLayout,当使用 pullToRefresh 获取更新数据而不是更新数据问题。但是当在回收器上滚动并接收到结束列表时使用 pullToRefresh 时,lazyLoader 不起作用!你能帮助我吗?请
标签: java android android-recyclerview lazy-loading pull-to-refresh