Vista de lista expandida necesaria para expandir la fila una a la vez
Im usando listview expandido en mi proyecto, necesito expandir el listview sólo uno a la vez, es decir, i expandir un elemento y cuando intenta expandir otro elemento en la lista el elemento anterior que se expandió tiene que colapsar y el nuevo elemento ha hecho clic en Para ampliar, las respuestas serán muy apreciadas, estoy tratando con el siguiente fragmento para el oyente de clic.
convertViewpar.setOnClickListener(new OnClickListener() { int i=1; public void onClick(View v) { i = i++; int[] expds = new int[100]; expds[0]=0; expds[i] = groupPosition; if(expds[i]==expds[i-1]){ if(isExpanded) expandlist.collapseGroup(i); else expandlist.expandGroup(i); }else{ expandlist.collapseGroup(i-1); if(isExpanded) expandlist.collapseGroup(i); else expandlist.expandGroup(i); } } });
- ExpandableListView siempre se derrumba
- ¿Cómo cambiar la posición del indicador del grupo ExpandableListView?
- Utilizar PullToRefreshExpandableListView en Fragmento
- Convertir el ejemplo expandableListView en un fragmento
- Ver contenido a continuación ExpandableListView
- ListView / ExpandableListView setEmptyView () no tiene efecto
- Agregar un botón al elemento ExpandableListView Group
- LayoutAnimation sólo funciona una vez
- Vista de lista expandible setOnChildClickListener no funciona
- Cambiar la ubicación del indicador en ExpandableListView causando problemas
- Android - ¿Mejor alternativa a la lista expandible?
- Cómo ajustar la altura de ListView cuando hay ExpandableListView incrustado en ListView
- Cómo crear dinámicamente grupos y childs en listview expandible desde json en android?
Agregar implementos OnGroupExpandListener en el nivel de clase y en el método onCreate
listView.setOnGroupExpandListener(this);
Y agregue este método
/* * (non-Javadoc) * * @see * android.widget.ExpandableListView.OnGroupExpandListener#onGroupExpand * (int) */ public void onGroupExpand(int groupPosition) { int len = expListAdapter.getGroupCount(); for (int i = 0; i < len; i++) { if (i != groupPosition) { listView.collapseGroup(i); } } }
Funcionará definitivamente.
Pruebe esta solución. Utilice un Listener de GroupClcik y compruebe en qué posición se hace clic actualmente y colabore todos los demás grupos,
expList.setOnGroupClickListener(new OnGroupClickListener() { public boolean onGroupClick(ExpandableListView arg0, View arg1, int arg2, long arg3) { int count = yourAdapter.getGroupCount(); for (int i = 0; i <count ; i++) if(arg2!=i) exp.collapseGroup(i); else exp.expandGroup(i); return false; } });
O según esta solución, Contraer un grupo de forma programática en ExpandableListView ,
@Override public void onGroupExpanded(int groupPosition){ //collapse the old expanded group, if not the same //as new group to expand if(groupPosition != lastExpandedGroupPosition){ accordion.collapseGroup(lastExpandedGroupPosition); } super.onGroupExpanded(groupPosition); lastExpandedGroupPosition = groupPosition; }
- Interceptar, leer y cancelar el mensaje SMS
- Detener el desplazamiento del usuario para establecer la posición en RecyclerView