ScrollView no se desplaza en absoluto
No puedo hacer que ScrollView se mueva correctamente. Siempre corta el contenido en la parte inferior, como si fuera un LinearLayout normal.
Mi código
- Vista de texto no desplazable en android
- Array Index fuera de límite cuando se desplaza la vista de lista rápidamente mientras se actualizan los datos desde el servidor
- JQuery móvil deshabilitar el contenido de la página desplazamiento vertical
- Listview Desplácese al final de la lista después de actualizar la lista
- Android: Detectando cuando ScrollView Hits Bottom
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" > <LinearLayout android:id="@+id/scroll_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:isScrollContainer="true" android:orientation="vertical" >
Por supuesto, ya intenté agregar / quitar las propiedades "fillViewport" y "isScrollContainer", y no cambió nada en absoluto.
Gracias por adelantado.
- Desplazamiento de imagen enriquecido y zoom en android
- Deshabilitar el desplazamiento en todos los dispositivos móviles
- Entrada de desplazamiento salvaje android
- Android, appcompat v21, implementar técnicas de desplazamiento
- Agregar una vista de pie de página nativa a la vista web
- Vista de cuadrícula de desplazamiento horizontal
- GridView con muchas imágenes da como resultado un desplazamiento lento / áspero
- Android ScrollView se desplaza a la parte superior después de llamar a setVisibility (View.VISIBLE) en la vista secundaria
Respuesta: el ScrollView no funciona cuando se utiliza como elemento raíz de un diseño XML. Tiene que ser envuelto dentro de un LinearLayout.
Solución:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ScrollView android:id="@+id/scroll_view" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" > <LinearLayout android:id="@+id/scroll_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" >
Quite el android:isScrollContainer
en LinearLayout
. Según la documentación android:isScrollContainer
se utiliza para configurar la vista desplazable. Espero que esto te ayude. Consulte este enlace para la definición.
Android Studio añade un NestedScrollView al archivo de actividad de algunas de sus plantillas (por ejemplo, Master-Detail). Tener un ScrollView en el archivo de fragmentos y otro en el archivo de actividad de ese fragmento impide que la vista de desplazamiento funcione. Quitar el ScrollView en mi archivo de fragmentos y dejarlo en el archivo de actividad resolvió el problema para mí.
Pruebe esta solución, sólo retrasar su desplazamiento mediante el método de post-retraso.
Fragment_test.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rootRelativeLayout" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:fresco="http://schemas.android.com/apk/res-auto"> <ScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="40dp" android:fillViewport="true" android:scrollbars="none"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> ... </RelativeLayout> </ScrollView> </RelativeLayout>
TestFragment.java
... private ScrollView mScrollView; ... mScrollView = (ScrollView) mView.findViewById(R.id.scrollView); mScrollView.setSmoothScrollingEnabled(true); ... new Handler().postDelayed(new Runnable() { @Override public void run() { if(isAdded()) { // Scroll 1000px down mScrollView.smoothScrollTo(0, 1000); } } }, 150);
Esto funcionó para mí, espero que esto ayude.
Esto solucionó mi problema: agregué android:isScrollContainer="true"
a un LinearLayout y eliminado el código de ScrollView antes de:
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ScrollView android:id="@+id/scrollViewRecords" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <LinearLayout android:id="@+id/sheepList" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > </LinearLayout> </ScrollView> </LinearLayout>
Código Después
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:isScrollContainer="true"> <LinearLayout android:id="@+id/sheepList" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > </LinearLayout> </LinearLayout>