2016-09-07 2 views
8

Ich habe diesen Code in meinem populateViewHolder:Wie auszuschließen Element aus einem FirebaseRecyclerAdapter

public void populateViewHolder(final CampaignHolder viewHolder, final Campaign campaign, final int position) { 
      String k = getRef(position).getKey(); 
      ref.child(k).child("users").addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
        if (!dataSnapshot.hasChild(getUid())) { 
         //Something... 
        } 
       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      }); 
      //...Populating the viewholder... 

ich den Artikel entfernen möchte, wenn !dataSnapshot.hasChild(getUid())true ist, sonst nur halten normalerweise die ViewHolder auf bevölkern. Beachten Sie, dass ich nicht möchte das Element aus der Datenbank entfernen, ich möchte nur aus der FirebaseRecyclerAdapter gegangen. Welche Methode steht dafür zur Verfügung?


Edit: Ich bin immer noch die Suche nach einer Lösung für dieses Problem, da es behoben worden nicht. Meine Lösung ist sehr entmutigt und sehr schlechte Praxis, und ich habe darüber nachgedacht, es selbst zu verwenden.

+0

wie das nächste Mal sieht werde ich eine 400 rep Prämie –

+0

Hii geben müssen, möchte ich bestimmte Datensätze von Feuerbasis auszuschließen, wie wenn eingereicht Datum

Antwort

1

Update: Das ist extrem schlechte Praxis und sehr glitchy. Ich HOCH entmutigen ANYONE dies, da es zu benutzen wird Ihre RecyclerView machen sehr glitchy und überschüssigen Laden von Daten verursachen, die ist nicht das, was Ihre Benutzer wollen.

landete ich es manuell als so machen:

if(x) 
    viewHolder.itemView.setVisibility(View.GONE); //itemView is a view provided by Android, no need to initiate it. 

Dieses sagt, wenn xtrue ist, die Reihe bekommen und legen Sie seine Sichtbarkeit zu GONE. Das hat das Problem für mich gelöst. Ich werde das wahrscheinlich auf GitHub abzweigen.

+0

Setze es nicht auf "weg", setze seine Höhe auf 0 (und setze die Höhe auf normal für die anderen Elemente) – EpicPandaForce

Verwandte Themen