SwipeRefreshLayout: Desplazar la animación de progreso
Soy bastante nuevo en android y estoy explorando el código de ejemplo en el sitio web de Google. El código en el que estoy actualmente es el SwipeRefreshLayout: http://developer.android.com/samples/SwipeRefreshLayoutBasic/index.html
En el código, vemos el SwipeRefreshLayout ejecutándose para una lista, por lo que en otras palabras, si arrastra hacia abajo la vista de lista, se dispara el método y se actualiza la vista de lista.
- SwipeRefreshLayout + WebView cuando la posición de desplazamiento está en la parte superior
- Cuando el fragmento de interruptor con SwipeRefreshLayout durante la actualización, el fragmento se congela pero en realidad todavía funciona
- ¿Cómo solicitar datos de la base de datos de firebase de nuevo?
- SwipeRefreshLayout con emptyView, actualizar el hilandero parpadea
- SwipeRefreshLayout intercepta con ViewPager
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swiperefresh" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout>
Lo que me confunde es que no hay ningún diseño en el código de la barra de animación de progreso que se muestra en la parte superior de la lista cuando se arrastra hacia abajo. ¿Crees que el SwipeRefreshLayout genera automáticamente una barra de animación de progreso cuando la arrastras hacia abajo sin necesidad de que el usuario especifique un diseño en xml?
Por ejemplo, si uno quiere poner el relleno en ambos extremos de la barra de animación de progreso, para que la animación no toque los extremos de la pantalla cuando se actualiza, ¿cómo lo haría uno?
El https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html no dice nada al respecto.
- No se puede desplazar en un ListView en un swipeRefreshLayout
- SwipeRefreshLayout - Tirar desde el fondo
- SwipeRefreshLayout - desliza el dedo hacia abajo para actualizar pero no mueve la vista hacia abajo
- SwipeRefreshLayout con NestedScrollView y LinearLayout
- establecer la ubicación de la barra de progreso en la función Actualizar actualización de Android
- RecyclerView y SwipeRefreshLayout
- Hacer una costumbre SwipeRefreshLayout Indicator?
- SyncAdapter siempre en estado pendiente
No se puede cambiar la animación.
En SwipeRefreshLayout
no se puede personalizar mucho; Creo que esto es un intento de Google para que los desarrolladores se adhieran a patrones comunes. Lo que puedes setColorScheme()
son los cuatro colores de la animación, especificados con setColorScheme()
.
SwipeRefreshLayout
se encarga de mostrar su animación predefinida en su parte superior para usted. Esto puede ocurrir cuando canChildScrollUp()
devuelve false y el usuario 'tira hacia abajo', o cuando establece setRefreshing(true)
. Desactive la animación con setRefreshing(false)
. Ponga su lógica en el método onRefreshing()
del oyente. canChildScrollUp()
si coloca algo que no es un ListView
en su SwipeRefreshLayout
. Deberías ser bueno para ir de aquí.
Aunque no puedes cambiarlo, todavía puedes ocultarlo y luego mostrar tu propio desencadenado una vez 🙂
SwipeRefreshLayout swiperefresh = (SwipeRefreshLayout)root.findViewById(R.id.swiperefresh); swiperefresh.setOnRefreshListener(this); swiperefresh.setColorSchemeColors(0,0,0,0); swiperefresh.setProgressBackgroundColor(android.R.color.transparent);
Notas:
-
En eclipse hay que agregar @SuppressLint ("ResourceAsColor") para compilar esto.
-
Todavía necesita llamar a setRefreshing (false) en un punto apropiado en el momento en que onRefresh no se activa de nuevo.
- Generar un color aleatorio Java
- Consumible de Android: "ya posee ese elemento", pero inventory.hasPurchase () es falso