2014-11-07 11 views
26

Ich versuche, Pull-to-Refresh in Android zu implementieren. Ich weiß, dass es SwipeRefreshLayout gibt, aber mit all den neu gestalteten Google-Apps wie Drive (siehe Anhang) für Lollipop, habe ich festgestellt, dass es ein neues Refresh-Icon gibt, das beim Ziehen in die Ansicht kommt. Ich habe versucht, es online zu suchen, aber vergeblich. Hat Android dies als Teil des Material Designs veröffentlicht? Irgendwelche Ideen zur Umsetzung?Android Lollipop - Pull zum Aktualisieren

EDIT: Einige Leute haben darauf hingewiesen, wie dies ein Duplikat von How to implement a Pull-to-refresh ist. Es ist nicht die gleiche Frage. Sie werden es sehen, wenn Sie die Frage richtig lesen.

enter image description here

+5

ist es freigegeben. SwipeRefreshLayout hat diese ausgefallene Schaltfläche out of the box –

+0

mögliche Duplikate von [So implementieren Sie Android Pull-to-Refresh] (http://stackoverflow.com/questions/4583484/how-to-implement-android-pull-to-refresh) –

+0

@ MarianPaździoch Wenn Sie genau hinsehen, ist es nicht. – Nerd

Antwort

60

Dies ist SwipeRefreshLayout. Version 21 der Support-Bibliothek enthält, dass es den alten Stil ersetzt.

+0

Das ist die richtige Antwort, danke! – Roman

19
  1. Laden Sie die neueste Lollipop SDK und Extras/Android Support-Bibliothek
  2. Set Project Build-Ziel auf Android 5.0 (sonst kann das Support Package Fehler mit haben Ressourcen)
  3. Aktualisieren Sie Ihre libs/android-support-v4.jar bis 21. Version
  4. Verwenden android.support.v4.widget.SwipeRefreshLayout Plus android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener

ausführliche Anleitung könnte hier: http://antonioleiva.com/swiperefreshlayout/

plus Listview ich empfehle über canChildScrollUp() in den Kommentaren zu lesen;)

7

Ich mag dies die beste Führung und es ist wirklich einfach zu verstehen: https://www.bignerdranch.com/blog/implementing-swipe-to-refresh/

  1. Fügen Sie die folgenden Gradle:

    compile 'com.android.support:support-v4:22.2.0'

  2. Fügen Sie die Swipe Aktualisieren Sie Ihr Layout - in Listview oder Recyclerview in der Mitte der swiperefres hlayout:

    <ListView 
         android:id="@+id/activity_main_listview" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         > 
        </ListView> 
    
    </android.support.v4.widget.SwipeRefreshLayout> 
    
  3. für den mainactivity im Code hinzufügen:

    public class MainActivity extends Activity { 
    
    ListView mListView; 
    SwipeRefreshLayout mSwipeRefreshLayout; 
    Adapter mAdapter; 
    
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.acivity_main); 
        SwipeRefreshLayout mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.activity_main_swipe_refresh_layout); 
        mListView = findViewById(R.id.activity_main_list_view); 
        mListView.setAdapter(new ArrayAdapter<String>(){ 
        String[] fakeTweets = getResources().getStringArray(R.array.fake_tweets); 
        mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, fakeTweets) 
        listView.setAdapter(mAdapter); 
    }); 
    } 
    

    }

  4. nicht mSwipeRefreshLayout.setRefreshing (false) zu nennen Vergessen; Sobald Ihre Erfrischung endet.

+0

Fügen Sie einen Code hinzu, der einen Link enthält, um Fehler zu vermeiden, wenn der Link in Zukunft nicht erreichbar ist –

Verwandte Themen