android - pulltorefresh - Deslice el RecyclerVista hacia arriba mientras lo desliza hacia arriba, o deslice el Recyclerview hacia abajo mientras lo desliza hacia abajo
swiperefreshlayout kotlin (3)
Quiero crear un Fragment
con un RecyclerView
que se deslice hacia arriba y muestre más elementos a medida que lo deslice hacia arriba.
Aquí hay un ejemplo de lo que estoy hablando.
Creación inicial:
El usuario desliza hacia arriba para deslizar RecyclerView
arriba, muestra más elementos:
Hay algunos problemas, me gustaría no usar un CoordinatorLayout
, y me gustaría configurarlo para que los elementos en RecyclerView
EditText
directamente sobre el EditText
.
Este es el código de diseño que estoy usando:
<android.support.design.widget.CoordinatorLayout
android:id="@+id/coordinatorLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="400dp"
android:background="@android:color/transparent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsingToolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<View
android:id="@+id/emptyView"
android:layout_width="match_parent"
android:layout_height="400dp"
android:background="@android:color/transparent"
app:layout_collapseMode="parallax"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<EditText
android:id="@+id/editText"
android:paddingLeft="16dp"
android:inputType="textAutoCorrect"
android:layout_centerVertical="true"
android:background="@android:color/transparent"
android:layout_width="match_parent"
android:layout_height="56dp"/>
</RelativeLayout>
</RelativeLayout>
Y me sale algo como esto:
Esto definitivamente no es escalable, y la vista vacía debería ser medida constantemente.
Puede usar setReverseLayout de LinearLayoutManager
Se utiliza para invertir el orden de trazado y recorrido de elementos. Esto se comporta de manera similar al cambio de diseño para las vistas RTL. Cuando se establece en verdadero, el primer elemento se presenta al final de la interfaz de usuario, el segundo elemento se presenta antes de él, etc. Para los diseños horizontales, depende de la dirección del diseño. Cuando se establece en verdadero, si RecyclerView es LTR, entonces el diseño de RTL, si RecyclerView} es RTL, será el diseño de LTR. Si está buscando exactamente el mismo comportamiento de setStackFromBottom (boolean), use setStackFromEnd (boolean)
TouchListener
esto utilizando un TouchListener
personalizado, todas las demás soluciones eran muy básicas y se limitaban a un caso de uso específico y en caja.
La forma en que lo hice fue implementar un nuevo TouchListener
basado en esta biblioteca:
Obtengo los siguientes resultados: