Bu dokümanda, kullanıcı bir kılavuz istediğinde uygulamanızın nasıl güncelleneceği gösterilmektedir ister kaydırma hareketiyle ister işlem çubuğunu kullanarak tetikleyin, yenileyin yenileme işlemi.
Yenileme hareketine yanıt verme
Kullanıcı yenilemek için kaydırma hareketini yaptığında sistem İlerleme göstergesi ve uygulamanızın geri çağırma yöntemini çağırır. Geri çağırma yönteminiz: uygulamanın verilerini güncellemekten sorumludur.
Uygulamanızda yenileme hareketine yanıt vermek için
SwipeRefreshLayout.OnRefreshListener
.
arayüzü ve
onRefresh()
yöntemidir. Kullanıcı bir işlem gerçekleştirdiğinde onRefresh()
yöntemi çağrılır.
kaydırma hareketi.
Gerçek güncelleme işleminin kodunu ayrı bir yönteme (tercihen)
bir ViewModel
ile ilişkilendirebilir ve
onRefresh()
uygulanması. Bu şekilde, aynı güncellemeyi
Kullanıcı işlemden bir yenilemeyi tetiklediğinde güncellemeyi gerçekleştirme yöntemi
çubuk.
Güncelleme yönteminizde
setRefreshing(false)
.
veri güncellemesi bittiğinde. Bu yöntemin çağrılması
SwipeRefreshLayout
.
simgesini tıklayın.
Örneğin, aşağıdaki kod onRefresh()
ve
gösterilen verileri güncellemek için myUpdateOperation()
yöntemini çağırır
tarafından
ListView
:
Kotlin
// Sets up a SwipeRefreshLayout.OnRefreshListener that invokes when // the user performs a swipe-to-refresh gesture. mySwipeRefreshLayout.setOnRefreshListener { Log.i(LOG_TAG, "onRefresh called from SwipeRefreshLayout") // This method performs the actual data-refresh operation and calls // setRefreshing(false) when it finishes. myUpdateOperation() }
Java
// Sets up a SwipeRefreshLayout.OnRefreshListener that is invoked when // the user performs a swipe-to-refresh gesture. mySwipeRefreshLayout.setOnRefreshListener(() -> { Log.i(LOG_TAG, "onRefresh called from SwipeRefreshLayout"); // This method performs the actual data-refresh operation and calls // setRefreshing(false) when it finishes. myUpdateOperation(); } );
Yenileme işlemine yanıt verme
Kullanıcı işlem çubuğunu kullanarak bir yenileme isteğinde bulunursa sistem,
onOptionsItemSelected()
.
yöntemidir. Uygulamanız bu çağrıya, ilerleme durumu göstergesini ve ekranın üst kısmındaki
uygulamanın verilerini yeniliyor.
Yenileme işlemine yanıt vermek için geçersiz kıl
onOptionsItemSelected()
Geçersiz kılma yönteminizde, aşağıdakileri tetiklemek için
Telefon ederek SwipeRefreshLayout
ilerleme göstergesi
true
değerini setRefreshing()
ile değiştirin, ardından şunu gerçekleştirin:
güncelleme işlemi. Asıl güncellemeyi ayrı bir yöntemde yapın. Bu şekilde
yöntemi, kullanıcı güncellemeyi kaydırmayla mı yoksa kullanıcı tarafından yapılan
tıklayın. Güncelleme tamamlandığında setRefreshing(false)
numaralı telefonu arayın
yenileme ilerleme göstergesini kaldırın.
Aşağıdaki kod, istek işlemine nasıl yanıt verileceğini gösterir:
Kotlin
// Listen for option item selections to receive a notification when the user // requests a refresh by selecting the refresh action bar item. override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { // Check whether the user triggers a refresh: R.id.menu_refresh -> { Log.i(LOG_TAG, "Refresh menu item selected") // Signal SwipeRefreshLayout to start the progress indicator. mySwipeRefreshLayout.isRefreshing = true // Start the refresh background task. This method calls // setRefreshing(false) when it finishes. myUpdateOperation() return true } } // User doesn't trigger a refresh. Let the superclass handle this action. return super.onOptionsItemSelected(item) }
Java
// Listen for option item selections to receive a notification when the user // requests a refresh by selecting the refresh action bar item. @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Check whether the user triggers a refresh: case R.id.menu_refresh: Log.i(LOG_TAG, "Refresh menu item selected"); // Signal SwipeRefreshLayout to start the progress indicator. mySwipeRefreshLayout.setRefreshing(true); // Start the refresh background task. This method calls // setRefreshing(false) when it finishes. myUpdateOperation(); return true; } // User doesn't trigger a refresh. Let the superclass handle this action. return super.onOptionsItemSelected(item); }