[英]RecyclerView inside of Fragment not updating
In my application I have a ViewPager
that contains 5 fragments with a RecyclerView
inside each of them. 在我的应用程序中,我有一个
ViewPager
,其中包含5个片段,每个片段中都有一个RecyclerView
。 After clicking on a button I need to refresh items of my RecyclerView
s so I'm sending request to server and get response in my activity then I'm calling notifyDataSetChanged();
单击按钮后,我需要刷新
RecyclerView
的项目,以便将请求发送到服务器并在活动中获得响应,然后调用notifyDataSetChanged();
for all of my RecyclerView
s but changes not visible until I refresh 2-3 pages of my ViewPager
. 对于我所有的
RecyclerView
但更改只有在刷新2-3页ViewPager
。 What is wrong? 怎么了? here is some code from my application
这是我的应用程序中的一些代码
Fragments: 片段:
public class ReservedFragment extends Fragment {
List<ReservedTimesModel> arrayList;
ReservedTimesAdapter reservedTimesAdapter;
RecyclerView recyclerView;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_reserved, container, false);
recyclerView = (RecyclerView) view.findViewById(R.id.fragment_recycle);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
if (arrayList != null) {
if (!arrayList.isEmpty()) {
reservedTimesAdapter = new ReservedTimesAdapter(arrayList, getActivity());
recyclerView.setAdapter(reservedTimesAdapter);
} else {
view.findViewById(R.id.textview).setVisibility(View.VISIBLE);
}
} else {
view.findViewById(R.id.textview).setVisibility(View.VISIBLE);
}
return view;
}
public void refresh() {
if (reservedTimesAdapter != null) {
if (arrayList.isEmpty()) {
getView().findViewById(R.id.textview).setVisibility(View.VISIBLE);
} else {
reservedTimesAdapter.notifyDataSetChanged();
}
}
}
Code inside of Button
click listener in Adapter: 适配器中
Button
Click侦听器内部的代码:
context.getReserved();
Code in Activity refresh after setting new list for each fragment: 为每个片段设置新列表后,刷新“活动”中的代码:
viewPager.setVisibility(View.VISIBLE);
reservedFrag.refresh();
deprecatedFrag.refresh();
cancelledFrag.refresh();
cancelledByAdminFrag.refresh();
pendingFrag.refresh();
viewPager.setCurrentItem(4);
Your notifyDataSetChanged
is called conditionally based on the values of variables. 根据变量的值有条件地调用
notifyDataSetChanged
。 Maybe it is not being called at all. 也许根本没有被调用。
Difficult to say for sure as the code is so minimal. 由于代码很少,因此很难确定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.