¿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

  • Forzar el no-flash Vimeo incrustar o deshabilitar Flash en un WebView?
  • Desactivar ventanas emergentes y alarmboxes en la vista web de android
  • Cómo crear una vista web a pantalla completa
  • ¿Es posible acceder a la caché WebView?
  • Phonegap Android Internet no funciona
  • ¿Cómo desplazarse automáticamente al campo de entrada en Android cuando el teclado virtual se superpone al mostrar?
  • Android: Cómo comprobar la carga exitosa de url al usar webview.loadUrl
  • Detectar el cambio de ubicación de la URL de webview de Android
  • ¿Cómo mostrar una barra de progreso cuando WebView carga una URL en Android?
  • Interceptar solicitudes POST en un WebView
  • ¿Hay alguna manera de hacer que una vista web que ejecuta android 4.0 se realice a un nivel aceptable?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.