Implementación de Deslizamiento para Actualizar en Android

La biblioteca Android-PullToRefresh proporciona una manera sencilla de integrar la funcionalidad de "deslizar para actualizar" y "cargar más" en aplicaciones Android.

Funcionalidades Clave

  • Soporte para diversas vistas de lista, cuadrícula y desplazamiento.
  • Incluye animaciones de indicador predefinidas.
  • Permite la personalizaicón de la cabecera y el estilo del indicador.
  • API intuitiva y fácil de usar.
  • Compatible con Android 2.1 y versiones posteriores.

Integración del Proyecto

1. Añadir Dependencia

Agrega la siguiente línea a tu archivo build.gradle (nivel de módulo):

dependencies {
    implementation 'com.handmark.pulltorefresh.library:library:2.0.0'
}

2. Incorporar el Componente en el Layout

Utiliza el componente PullToRefreshListView (o variantes como PullToRefreshGridView) en tu archivo XML:

<com.handmark.pulltorefresh.library.PullToRefreshListView
    xmlns:ptr="http://schemas.android.com/apk/res-auto"
    android:id="@+id/refreshable_list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    ptr:ptrAnimationStyle="flip"
    ptr:ptrHeaderBackground="#3F51B5"
    ptr:ptrMode="both" />

ptr:ptrMode puede configurarse como "pullUpFromBottom", "pullDownFromTop" o "both" para definir la dirección de la acción de actualización.

3. Configurar el Listener de Eventos

En tu Activity o Fragment, instancia el componente y establece los listeners para los eventos de actualización y carga:

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;

public class MainActivity extends AppCompatActivity {

    private PullToRefreshListView refreshableList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        refreshableList = findViewById(R.id.refreshable_list);

        // Listener para la acción de 'Pull-to-Refresh'
        refreshableList.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
            @Override
            public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                // Implementar lógica para refrescar datos aquí
                refreshView.onRefreshComplete(); // Llama a esto cuando la actualización termine
            }
        });

        // Listener para la acción de 'Load More'
        refreshableList.setOnLoadMoreListener(new PullToRefreshBase.OnLoadMoreListener<ListView>() {
            @Override
            public void onLoadMore(PullToRefreshBase<ListView> loadMoreView) {
                // Implementar lógica para cargar más datos aquí
                loadMoreView.onLoadMoreComplete(); // Llama a esto cuando la carga termine
            }
        });

        // Opcional: Habilitar/Deshabilitar modos
        refreshableList.setMode(PullToRefreshBase.Mode.BOTH);
    }
}

Ejemplos de Uso

Para explorar las diversas funcionalidades y configuraciones de la biblioteca, revisa los ejemplos proporcionados en el módulo app del proyecto.

Etiquetas: Android UI refresh ListView gridview

Publicado el 10-20 13:53