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.