Normalmente, no anidaremos ListView en ScrollView, pero está bien si el entrevistador insiste en que anido.
Agregar una View de ListView a un ScrollView hará que el control ListView esté incompleto, y generalmente solo se mostrará uno. ¿Cuál es la razón?
El conflicto del evento de desplazamiento entre los dos controles da como resultado . Por lo tanto, es necesario calcular la altura de visualización de ListView a través del número de elementos en ListView para que se muestre completamente. Se proporciona el siguiente método para su referencia.
La solución es la siguiente:
lv = (listView) findViewById (r.id.lv); adaptador = nuevo myAdapter (); lv.SetAdapter (adaptador); setListViewHeightBaseDonchildren (LV); ------------------------------------------------- if (listAdapter == null) {return; } int TotalHeight = 0; for (int i = 0; i <listAdapter.getCount (); i ++) {ver listItem = listAdapter.getView (i, null, listView); listItem.Meash (0, 0); TotalHeight += listItem.getMeaseDheight (); } ViewGroup.LayoutParams Params = listView.getLayoutParams (); params.height = totalHeight + (listView.getDividerHeight () * (listAdapter.getCount () - 1)); params.height += 5; listView.setLayoutParams (params); }La mejor manera de lidiar con él en esta etapa es: ListView personalizado, sobrecargar el método OnMreasure () y establecer todas las pantallas.
importardroid.widget.listView; / ** * * @Description: una implementación simple de ListView integrado en scrollView * * @file: scrollViewwithListView.java * * * @version */ public class ScrollViewWithListView extiende listView {public scrollViewWithListView (android.content.context.Context. attrs); } / ** * Integer.max_value >> 2. Si no se establece, la configuración predeterminada del sistema es mostrar dos piezas * / public void onMeash (int widthMeasureSpec, int hightMeaseSepec) {int expandspec = midespec.makemeasureSpec (integer.max_value >> 2, midespec.at_most); super.onmreasure (widthMeaseSpec, expandspec); }}El contenido anterior es la solución para incrustar ListView en ScrollView que el editor le presentó. ¡Espero que sea útil para todos!