2016-04-08 22 views
0

Wenn ich meine Tätigkeit starte ich meine Liste aktualisieren mitMerkwürdige Störungen bei der Verwendung von „aufzufrischen Pull“

swipeContainer.setRefreshing(true); 

nach dem Aktualisieren ist Aufruf

swipeContainer.setRefreshing(false); 

Aber während des networkcalls Der refreshIcon Pannen, in einem Bruchteil einer Sekunde

und wenn ich auf den Android-Monitor sehen bekomme ich diese Zeilen

D/OpenGLRenderer: endAllStagingAnimators on 0x7f926f5800 (RippleDrawable) with handle 0x7f8dcf50e0 

D/OpenGLRenderer: endAllStagingAnimators on 0x7f7ce78000 (ListView) with handle 0x7f89455380 

Was bedeutet das? und wie kann ich das beheben, dass ich die Störungen und Nachrichten nicht bekomme?

es ist wirklich ärgerlich

EDIT 1 Dies ist, wie ich meinen setRefreshing nennen (true)

swipeContainer.post(new Runnable() { 
     @Override 
     public void run() { 
      swipeContainer.setRefreshing(true); 
     } 
    }); 
+0

Verwenden Handler ...... –

+0

Wie EDIT 1? Denn so nenne ich das setRefreshing (true); –

+0

Warum nicht swipeRefresh? Ich benutze einen swipeRefresh für meinen Code, wenn Sie möchten, dass ich das posten kann. – Robbert

Antwort

0

ich swipeRefreshLayout verwenden, könnte dies für Sie nützlich sein:

Mein XML-Code:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:background="@drawable/background2" 
android:layout_marginTop="56dp" 
android:weightSum="1"> 

<android.support.v4.widget.SwipeRefreshLayout 
    android:id="@+id/swipelayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <ListView 
     android:id="@+id/lv1" 
     android:layout_marginTop="15dp" 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:background="#f0f0f0" 
     android:alpha="0.90" 
     android:layout_weight="1.01" /> 

</android.support.v4.widget.SwipeRefreshLayout> 

Dies ist der Code, den ich verwende, um die Aktivität zu aktualisieren:

SwipeRefreshLayout mSwipeRefreshLayout; 

mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipelayout); 

    mSwipeRefreshLayout.setOnRefreshListener(
      new SwipeRefreshLayout.OnRefreshListener() { 
       @Override 
       public void onRefresh() { 
        finish(); 
        startActivity(getIntent()); 
       } 
      } 
    ); 
+0

Genau dies habe ich auch getan, aber beim ersten Öffnen Ihrer Aktivität muss die Liste von meinem Server aus aufgerufen werden, und wenn Sie nur verwenden Dein Code der Fortschrittsbalken erscheint nur, wenn du runter ziehst, ich lerne durch caling setRefreshing (true) der Fortschrittsbalken wird angezeigt, und wenn die Aufgabe erledigt ist (im anderen Thread) rufe ich setRefreshing (false) auf –

+0

@KoenVanLooveren Also, was du bist Sie möchten, dass es beim Laden von Daten von Ihrem Server aktualisiert wird? Ich mache technisch alles gleich, ich ziehe Daten aus einer WebAPI und fülle dann die Listview mit den Daten, wenn ich deine Antwort richtig verstehe, was du sagst, willst du die Listview beim Erstellen aktualisieren? Warum? Wenn Sie die Listview korrekt ausfüllen und korrekt eingerichtet haben, sollte sie bereits gefüllt sein, bevor Sie Anthing sehen. Wenn ich nicht vollständig verstanden habe dann tut mir leid :) – Robbert

+0

Nein, das ist nicht wahr, ich öffne meine Aktivität und nur dann werden die Daten aus dem Internet aufgerufen werden, weil ich nur die Daten für diese Aktivität benötigen –