簡體   English   中英

片段內部的RecyclerView無法更新

[英]RecyclerView inside of Fragment not updating

在我的應用程序中,我有一個ViewPager ,其中包含5個片段,每個片段中都有一個RecyclerView 單擊按鈕后,我需要刷新RecyclerView的項目,以便將請求發送到服務器並在活動中獲得響應,然后調用notifyDataSetChanged(); 對於我所有的RecyclerView但更改只有在刷新2-3頁ViewPager 怎么了? 這是我的應用程序中的一些代碼

片段:

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();
        }
    }
}

適配器中Button Click偵聽器內部的代碼:

context.getReserved();

為每個片段設置新列表后,刷新“活動”中的代碼:

viewPager.setVisibility(View.VISIBLE);
reservedFrag.refresh();
deprecatedFrag.refresh();
cancelledFrag.refresh();
cancelledByAdminFrag.refresh();
pendingFrag.refresh();
viewPager.setCurrentItem(4);

根據變量的值有條件地調用notifyDataSetChanged 也許根本沒有被調用。

由於代碼很少,因此很難確定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM