ExpandableListView lista expandible no expandir cuando su altura es wrap contenido, y algo está por debajo de él
Aquí está mi código de diseño. Cuando hago clic en la vista de lista expandible no se expande. Sin embargo, si aumenta la altura de la lista se expande. ¿Hay una manera de aumentar la altura de la lista dinámicamente a través del código? ¿Puedo hacer que se expanda en el medio de mi diseño. Porque si aumenta la altura, sólo agregará espacio en blanco innecesario en la lista contraída.
Código:
- Error: No se encontró ningún recurso que coincida con el nombre dado (en 'theme' con el valor '@ style / AppTheme')
- No se puede acceder a android / drawable Icon-Resource
- Cómo aumentar el tamaño de transport.dump de 256 bytes a 512 o más bytes en KSOAP2?
- ImageView en el diseño de android XML con layout_height = "wrap_content" tiene relleno superior e inferior
- Equivalencia de setTag (clave, valor) en XML
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.pocketcash.pocketcash.HomeActivity"> <Switch android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/detailedCashInfoSwitch" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:onClick="cashToggleSwitchClicked" android:text="Toggle Detailed Cash Info" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Add cash" android:id="@+id/addCashButton" android:onClick="launchAddCash" android:layout_below="@+id/expandableListView2" android:layout_centerHorizontal="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Add expenditure" android:id="@+id/addExpenditureButton" android:layout_below="@+id/addCashButton" android:layout_centerHorizontal="true" android:layout_marginTop="25dp" android:onClick="launchAddExpenditure" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Recent Logs:" android:id="@+id/recentLogsText" android:layout_below="@+id/addExpenditureButton" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="50dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="Small Text" android:id="@+id/logText" android:layout_below="@+id/recentLogsText" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="0dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="(view all)" android:id="@+id/recentViewAllText" android:layout_alignTop="@+id/recentLogsText" android:layout_toRightOf="@+id/recentLogsText" android:layout_toEndOf="@+id/recentLogsText" android:layout_marginLeft="10dp" android:onClick="recentViewLogClicked" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="(view logs)" android:id="@+id/addViewAllText" android:layout_below="@+id/addCashButton" android:layout_centerHorizontal="true" android:onClick="addViewLogClicked" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="(view logs)" android:id="@+id/expenseViewAllText" android:layout_below="@+id/addExpenditureButton" android:layout_centerHorizontal="true" android:onClick="expenseViewLogClicked" /> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:id="@+id/userImage" android:layout_below="@+id/detailedCashInfoSwitch" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="34dp" android:background="@drawable/default_user" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Name" android:id="@+id/nameText" android:layout_alignTop="@+id/userImage" android:layout_toRightOf="@+id/userImage" android:layout_toEndOf="@+id/userImage" android:layout_marginLeft="25dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="logout" android:id="@+id/logoutText" android:layout_below="@+id/nameText" android:layout_alignLeft="@+id/nameText" android:layout_alignStart="@+id/nameText" android:clickable="true" android:onClick="logUserOut" /> <ImageButton android:layout_width="25dp" android:layout_height="25dp" android:id="@+id/settingsButton" android:layout_alignTop="@+id/nameText" android:layout_toRightOf="@+id/nameText" android:layout_toEndOf="@+id/nameText" android:background="@drawable/settingsicon" android:layout_marginLeft="25dp" android:onClick="launchSettingsActivity" /> <fragment android:layout_width="wrap_content" android:layout_height="wrap_content" android:name="com.pocketcash.pocketcash.CurrentBalanceInfoFragment" android:id="@+id/fragment_currentBalanceInfo" android:layout_below="@+id/userImage" android:layout_centerHorizontal="true" tools:layout="@layout/fragment_current_balance_info" /> <ExpandableListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/expandableListView2" android:layout_below="@+id/fragment_currentBalanceInfo" android:layout_centerHorizontal="true" android:clickable="true" /> </RelativeLayout> </ScrollView>
- ¿Cuál es el punto de `Content_main.xml`?
- ¿Crear una vista personalizada inflando un diseño?
- Cómo obtener el índice seleccionado de un grupo de radio en Android
- Eclipse ClassCastException al intentar expandir el diseño XML para Android
- Creación de un WebService ASP.net que devuelve JSON en lugar de XML
- Android: html en strings.xml
- Los recursos referenciados desde el manifiesto no pueden variar según la configuración
- Incluir etiqueta y dataBinding
Como Romain Guy (ingeniero de Google trabaja en UI toolkit) dijo en su puesto
Al establecer el ancho en wrap_content
le está diciendo a ListView que sea tan amplio como el más ancho de sus hijos. ListView debe medir sus elementos y obtener los elementos que tiene que llamar a getView()
en el adaptador. Esto puede ocurrir varias veces dependiendo del número de pases de diseño, el comportamiento del diseño de los padres, etc.
Por lo tanto, si establece el ancho de diseño o la altura de diseño de ListView
en wrap_content
ListView
intentará medir cada vista que se adjunte a ella, lo que definitivamente no es lo que desea.
Tenga en cuenta: evite establecer wrap_content para ListViews
o GridViews
o ExpandableListView
en todo momento, para más detalles vea este video de E / S de Google hablando sobre el mundo de listview
Hacer tan ExpandableListView
a match_parent
Después de mucha investigación sobre este tema, sólo podía llegar a la conclusión de que un objeto desplazable como el listview extensible no se puede declarar dentro de otra vista desplazable. Sin embargo i tweaked alrededor con mi código de Java un poco para resolver este problema durante runtime.
expListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { @Override public void onGroupExpand(int groupPosition) { int height = 0; for (int i = 0; i < expListView.getChildCount(); i++) { height += expListView.getChildAt(i).getMeasuredHeight(); height += expListView.getDividerHeight(); } expListView.getLayoutParams().height = (height+6)*10; } }); // Listview Group collapsed listener expListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() { @Override public void onGroupCollapse(int groupPosition) { expListView.getLayoutParams().height = 61; } });
De esta manera ajusté la altura del widget de forma dinámica cuando se expandió o se derrumbó. No es un método confiable y funciona en éxito y el juicio por lo que en última instancia, tuvo que mover este widget a una actividad completamente nueva. Sin embargo, esto funcionó sin problemas. Pero si alguien encuentra una mejor respuesta, por favor comparta.
- ¿Es posible compilar un código Java simple en Android Studio?
- Ver el valor de evento de Google Analytics