Deaktivieren Sie auf RecyclerView in einem SwipeRefreshLayout

Ich habe ein SwipeRefreshLayout mit einem RecyclerView implementiert und ich brauche, dass meine OnRefreshListener während des OnRefreshListener .

Ich habe den folgenden Ansatz versucht, aber der Klick tritt normalerweise auf:

  • Warum ist der Android-Handy-Simulator so langsam?
  • Android "Not_Market_Managed" Fehler
  • Repacked Android App Zeichnung Probleme auf Blackberry Playbook Simulator
  • Erkennung, ob ich im Release oder Debug-Modus in Android bin
  • AdMob - "Ungültige oder nicht vorhandene App-URL" beim Erstellen einer Anzeige
  • Ist es möglich, mehrere Schriften in der gleichen TextView zu haben?
  •  mRecyclerView.setEnabled(false); mRecyclerView.setClickable(false); 

  • Verwendung von forceLayout (), requestLayout () und ungültig ()
  • Wie man pausiert und einen TimerTask / Timer fortsetzt
  • Dynamische Aktualisierung der Libphonenummer-Metadaten in der vorinstallierten Android-App
  • ListFragment-Layout aus xml
  • Androind 2.2 Vorschau 1 - Verwenden von ConstraintsLayout mit GuideLine App stürzt ab
  • Was ist adb Gerät -l Liste?
  • One Solution collect form web for “Deaktivieren Sie auf RecyclerView in einem SwipeRefreshLayout”

    Verwenden Sie die Logik, die wir mit ListAdapter . Dadurch werden Adapterelemente deaktiviert, stattdessen ihre Eltern.

     public interface RecyclerViewItemEnabler{ public boolean isAllItemsEnabled(); public boolean getItemEnabled(int position); } 

    Und die Umsetzung sollte so aussehen:

     public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements RecyclerViewItemEnabler{ @Override public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) { super.onViewAttachedToWindow(holder); holder.itemView.setEnabled(isAllItemsEnabled()); //or do this in onBindViewHolder() } @Override public boolean isAllItemsEnabled(){ return mAllEnabled; } @Override public boolean getItemEnabled(int position){ return true; } public void setAllItemsEnabled(boolean enable){ mAllEnabled = enable; notifyItemRangeChanged(0, getItemCount()); } } 

    Verwendung: mRecylerAdapter.setAllItemsEnabled(!mSwipeRefreshLayout.isRefreshing());

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.