2016-06-12 8 views
1
<android.support.v7.widget.RecyclerView 
    android:id="@+id/education_recycle_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:scrollbars="vertical"> 
</android.support.v7.widget.RecyclerView> 

Dies ist meine aktuelle XML-Layoutdatei für die Recyclingansicht.Wie werden leere Daten in der Recycler-Ansicht gehandhabt?

Wie werden leere Daten in der Recycler-Ansicht behandelt? ist es möglich, wenn der Text "no data" im selben Layout anzeigt?

Dank

Antwort

2

Dies ist, wie ich es tun:

In XML:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<TextView 
    android:id="@+id/tv_no_data" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:text="@string/empty_text" 
    android:textAppearance="?android:textAppearanceMedium" 
    android:visibility="invisible" /> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/education_recycle_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scrollbars="vertical" 
    app:layoutManager="LinearLayoutManager" /> 
</FrameLayout> 

und im Activity:

if (!data.isEmpty()) { 
         //if data is available, don't show the empty text 
         emptyText.setVisibility(View.INVISIBLE); 
         RecyclerAdapter adapter = new RecyclerAdapter(data); // pass the data to your adapter here 
         recyclerView.setAdapter(adapter); 

        } else 
         emptyText.setVisibility(View.VISIBLE); 

Lassen Sie mich wissen, wenn Sie brauche weitere Informationen.

+0

Danke Viswesh und Ishata, ich folge den Anweisungen und ihrer Arbeit. –

+0

Froh, zu helfen. :) –

+0

Sie müssen das Dataset in einem Adapter beobachten. Wenn das Dataset leer ist, zeigen Sie nur eine leere Ansicht an. Diese Lösung funktioniert nicht, wenn die Elemente dynamisch entfernt werden. – Pawan

0

erstellen textview mit dem Text "Keine Daten vorhanden". Und in Ihrem Java setzen

if(noData) 
{ 
    textview.setVisibility(View.Visible); 
    recylerView.setVisibility(View.Gone); 
}else{ 
    textview.setVisibility(View.Gone); 
    recylerView.setVisibility(View.Visible); 
} 
+0

wo lege ich die textView im Layout? im selben Layout oder nicht? für Bedingung "noData", wo ich diese Bedingung gestellt habe? im Adapter oder in Aktivität? –

+0

@AzdaFirmansyah, das davon abhängt, wie Sie die Daten abrufen. Ich würde sagen, wenn Sie die Daten holen, wenn es keine Daten gibt, machen Sie die 'TextView' sichtbar. Andernfalls übergeben Sie die Daten an den Adapter und machen Sie die TextView unsichtbar/weg. –

Verwandte Themen