¿Cómo implementar pull down refresh en android?

Actualmente estoy trabajando en un fragmento que simplemente una webview con framelayout, el problema es, me gustaría hacer algo como el pull down refresh (al igual que algunos actualizar la función común de la vista de lista).

Supongo que hay una función refreshToDo() , todo lo que necesito es sólo un diseño (cuando arrastrar el cuerpo que muestran el encabezado de actualización, cuando el encabezado a la altura determinada, llama refreshToDo() , cuando lo suelto, volver para tapar y ocultar), pero ¿cómo implementar eso? Gracias

layout: (contiene el contenido principal y el contenido de destino, puede simplemente utilizar el contenido de destino, es para reproducir el video en pantalla completa en la vista web):

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <FrameLayout android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" > <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout> <FrameLayout android:id="@+id/target_view" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/black" android:visibility="gone" > </FrameLayout> </RelativeLayout> 

Fragmento:

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.web_fragment, container, false); mTargetView = (FrameLayout) rootView.findViewById(R.id.target_view); mContentView = (FrameLayout) rootView.findViewById(R.id.main_content); mWebView = (WebView) rootView.findViewById(R.id.webView); mWebView.setVerticalScrollBarEnabled(false); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true); mWebView.setWebViewClient(new MyWebViewClient(getActivity())); mWebView.setWebChromeClient(new MyWebChromeClient(getActivity())); mWebView.getSettings().setDomStorageEnabled(true); mWebView.getSettings().setPluginState(WebSettings.PluginState.ON); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.addJavascriptInterface(this, "jsinterface"); // default go to video page mWebView.loadUrl("file://" + getActivity().getFilesDir().toString() + StorageUtils.finalfoldername.toString() + "video_list.html"); return rootView; } 

¿Cómo agregar la vista personalizada para implementar la actualización desplegable? Gracias

5 Solutions collect form web for “¿Cómo implementar pull down refresh en android?”

Echa un vistazo a la impresionante biblioteca ActionBar-PullToRefresh. Hace el pull para refrescar el gesto usando la barra de progreso de gmail / google +, es altamente configurable, muy fácil de implementar.

Ahora hay un widget oficial SwipeRefreshLayout en la biblioteca de soporte de Android. Está haciendo exactamente lo que está buscando. La documentación está aquí:

https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html

He aquí un buen tutorial que encontré:

http://antonioleiva.com/swiperefreshlayout/

Para aquellos que quieran usar esta función en webView!

En su diseño xml, envuelva su WebView en SwipeRefreshLayout :

 <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swipe_container" android:layout_width="match_parent" android:layout_height="match_parent"> <WebView android:id="@+id/web_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout> 

En su clase de Actividad / Fragmento:

 //declare it as global var for future cancel refresh private SwipeRefreshLayout swipeLayout; //where you initialize your views: swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container); swipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { //your method to refresh content } }); //don't forget to cancel refresh when work is done if(swipeLayout.isRefreshing()) { swipeLayout.setRefreshing(false); } 

por ejemplo, puede configurar un cliente webView y cuando se cargue la página, cancelará la actualización:

 webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView web, String url) { if (swipeLayout.isRefreshing()) { swipeLayout.setRefreshing(false); } } }); 

Pruebe esto: LisView Custom XListView-Android

Puede utilizar SwipeRefreshLayout disponible en la biblioteca de soporte de android.

Un ejemplo completo de código de ejemplo con tutorial es avaialable en este enlace

  • JQuery Mobile no funciona en WebView al cargar desde activos locales
  • Cómo configurar el color de fondo de un WebView a un valor hexadecimal?
  • Cómo obtener la actividad de vista Web para desaparecer con PDF Link Action_view
  • Bloqueo de hilo principal de Android que bloquea hilo de WebView
  • ¿Cómo cambiar el tamaño del contenido de una webview en android?
  • Incluya algunas páginas en una página en JQuery móvil
  • Escalado de la vista de Android 4.1 (setInitialScale, meta-escala inicial no funciona)
  • Al seleccionar una imagen, la aplicación se reinicia en S3
  • ShouldOverrideUrlLoading (...) no se ejecuta si "window.location.href" modificado en una devolución de llamada de tiempo de espera
  • Cómo depurar javascript en webview en android
  • Deshabilitar los mensajes de WebView de la salida de logcat
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.