studio recyclerview hacer como android swiperefreshlayout

android - recyclerview - swiperefreshlayout kotlin



SwipeRefreshLayout detrĂ¡s de ActionBar (6)

Al usar un SwipeRefreshLayout en combinación con un modo de superposición ActionBar, la animación de carga se mostrará detrás de la barra de acciones, lo que lo hará casi invisible.

¿Hay algo que pueda hacer para mostrarlo en la parte superior de la barra de acciones?


Actualmente me he encontrado con esto cuando actualicé mi dependencia de appcompat 19.1.0 a 21.0.0 y no realicé cambios de código.

Esto es realmente un problema conocido con SwipeRefreshLayout en appcompat 21.0.0.

Busque aquí una solución: https://code.google.com/p/android/issues/detail?id=77712


En lugar de establecer paddingTop en SwipeRefreshLayout, establecer el layout_marginTop hará que la barra de progreso sea visible:

<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="?android:attr/actionBarSize">


Prueba este código:

int top_to_padding=100; swipe_refresh_layout.setProgressViewOffset(false, 0,top_to_padding);

Espero que sea un trabajo para ti.


la respuesta de Vijay Rajput me funciona, pero el problema solo estaba en Kitkat o en la altura, así que incluí:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { swipeLayout.setProgressViewOffset(false, 0,100); }


EDITAR

Esta fue la mejor solución antes de la v21 de la biblioteca appcompat-v7. Si está usando v21 o más reciente, verifique la respuesta aprobada. En caso de que esté utilizando appcompat-v7 <21 API, esto aún lo ayudará.

Puede solucionarlo fácilmente copiando SwipeRefreshLayout (y sus dependencias) en su proyecto y cambie dónde se muestra la barra de progreso, agregando un margen superior.

Para que sea fácil para todos, lancé una biblioteca con el margen implementado. Eche un vistazo a esto: https://github.com/Naroh091/SwipeRefreshLayoutOverlay

¡Espero eso ayude!


En la versión de Material Design de la biblioteca appcompat-v7 (v21.0.0), SwipeRefreshLayout obtiene un método para establecer el desplazamiento de la Vista de progreso.

https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html#setProgressViewOffset(boolean,%20int,%20int)

public void setProgressViewOffset (escala booleana, inicio int, final int)

La posición de inicio y reposo del indicador de actualización siempre se ubica cerca de la parte superior del contenido refrescante. Esta posición es una ubicación coherente, pero se puede ajustar en cualquier dirección en función de si hay una barra de herramientas o barra de acciones presente o no.

Parámetros

scale Se establece en true si no hay vista en un orden z mayor que donde se establece que el spinner de progreso aparezca.

start El desplazamiento en píxeles desde la parte superior de esta vista en la que debería aparecer el spinner de progreso.

end El desplazamiento en píxeles desde la parte superior de esta vista en la que el girador de progreso debe detenerse después de un gesto de deslizamiento exitoso.