Red de conocimiento informático - Material del sitio web - ¿Cómo anidar ListView en ScrollView?

¿Cómo anidar ListView en ScrollView?

En el trabajo, me he encontrado muchas veces con el problema de anidar ListView en ScrollView. Hay muchas soluciones en Internet, pero no son completas. He probado muchos métodos diferentes y todos tienen pros y contras.

A continuación explicaré, analizaré y resumiré desde cuatro aspectos: las razones para usar la estructura ListView anidada de ScrollView, los problemas encontrados en la estructura, varias soluciones y la comparación de ventajas y desventajas.

De hecho, no es solo ListView, sino también otras clases heredadas de AbsListView, incluidas ExpandableListView, GridView, etc. Para facilitar la explicación, a continuación se utiliza ListView.

I. ¿Por qué utilizar la estructura peculiar de ScrollView para anidar ListView?

ScrollView y ListView son estructuras de desplazamiento. Como sugieren los nombres, las funciones de estos dos controles en la interfaz de usuario son. Lo mismo, pero mire el diseño a continuación:

Esta es la página de confirmación del pedido de Tmall Mall. ScrollView está anidado en ExpandableListView. Hay una cantidad fija de controles en ExpandableListView y una cantidad fija de controles en la parte inferior. Se puede desplazar todo el ExpandableListView. Los datos de la lista deben anidarse dentro de datos fijos y desplazarse juntos como un todo. Bajo este requisito de diseño, apareció la extraña estructura de ListView anidado de ScrollView.

2. Problemas encontrados en estructuras anidadas de ScrollView y ListView

Sin más preámbulos, veamos los ejemplos de fallos:

lt;

android: id="@ id/act_solution_1_sv"

android: layout_width="fill_parent"

android: layout_height="fill_parent"gt;

lt; LinearLayout

android:

android: layout_width="fill_parent"

android: layout_height="wrap_content"

android: orientación ="vertical"gt

lt; TextView

android: layout_width="fill_parent"

android: layout_height="wrap_content"

android:text="/nListView datos principales\n"