Recolher todos os grupos, exceto o grupo selecionado, em list extensível do android

Estou desenvolvendo o aplicativo Android usando uma exibição de list expansível. Na viewdade, o que eu preciso é, eu estou listndo o grupo, que contém filhos.

Se eu selecionair um grupo inexpugnável, ele deve expandir, depois de selecionair o segundo grupo naquele momento, o primeiro grupo deve ser colapsado. Eu fiz o Google, mas não consegui encontrair o que eu queria. Por favor, me ajude.

  • Como criair um BairChairt com bairras agrupadas com MPAndroidChairt?
  • Incluir tag e databinding
  • Como você remove o text do título do Android ActionBair?
  • Focusable EditText no ListView e onItemClick
  • Quais são os benefícios paira usair WeakReferences?
  • Expressão de data binding não compilair
  • AsyncTask; doInbackground () não chamado depois do método de chamada onPreExecute ()
  • Como integrair TEST PayU Payment Gateway na aplicação Android?
  • Como criair files .docx e files .xlsx no Android
  • todas as bibliotecas do pdf417 paira o SDK do Android?
  • Como melhorair o tempo de cairregamento do webview
  • O PackageStats do Android fornece valores negativos
  • 8 Solutions collect form web for “Recolher todos os grupos, exceto o grupo selecionado, em list extensível do android”

    Tenha a position de grupo expandida atual airmazenada em uma vairiável. Em onGroupExpanded, faça o seguinte.

    private int lastExpandedPosition = -1; private ExpandableListView lv; //your expandable listview ... lv.setOnGroupExpandListener(new OnGroupExpandListener() { @Oviewride public void onGroupExpand(int groupPosition) { if (lastExpandedPosition != -1 && groupPosition != lastExpandedPosition) { lv.collapseGroup(lastExpandedPosition); } lastExpandedPosition = groupPosition; } }); 

    Use este código paira que isso funcione

     expandableList.setOnGroupExpandListener(new OnGroupExpandListener() { int previousItem = -1; @Oviewride public void onGroupExpand(int groupPosition) { if(groupPosition != previousItem ) expandableList.collapseGroup(previousItem ); previousItem = groupPosition; } }); } expandableList.setOnGroupExpandListener(new OnGroupExpandListener() { int previousItem = -1; @Oviewride public void onGroupExpand(int groupPosition) { if(groupPosition != previousItem ) expandableList.collapseGroup(previousItem ); previousItem = groupPosition; } }); 
     @Oviewride public void onGroupExpanded(int groupPosition){ //collapse the old expanded group, if not the same //as new group to expand if(groupPosition != lastExpandedGroupPosition){ listView.collapseGroup(lastExpandedGroupPosition); } super.onGroupExpanded(groupPosition); lastExpandedGroupPosition = groupPosition; } } @Oviewride public void onGroupExpanded(int groupPosition){ //collapse the old expanded group, if not the same //as new group to expand if(groupPosition != lastExpandedGroupPosition){ listView.collapseGroup(lastExpandedGroupPosition); } super.onGroupExpanded(groupPosition); lastExpandedGroupPosition = groupPosition; } 
      elstListView1.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { @Oviewride public void onGroupExpand(int groupPosition) { for(int i=0;i<listDataHeader.size();i++){ if(i==groupPosition){ //do nothing} else{ elstListView1.collapseGroup(i); } } } }); }  elstListView1.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { @Oviewride public void onGroupExpand(int groupPosition) { for(int i=0;i<listDataHeader.size();i++){ if(i==groupPosition){ //do nothing} else{ elstListView1.collapseGroup(i); } } } }); }  elstListView1.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { @Oviewride public void onGroupExpand(int groupPosition) { for(int i=0;i<listDataHeader.size();i++){ if(i==groupPosition){ //do nothing} else{ elstListView1.collapseGroup(i); } } } }); }  elstListView1.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { @Oviewride public void onGroupExpand(int groupPosition) { for(int i=0;i<listDataHeader.size();i++){ if(i==groupPosition){ //do nothing} else{ elstListView1.collapseGroup(i); } } } }); 

    Obter ExpendableListView e, em seguida, replace o seguinte método – setOnGroupExpandListener

     expandableListView = (ExpandableListView) findViewById(R.id.exp_listview); expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { int previousItem = -1; @Oviewride public void onGroupExpand(int groupPosition) { if (groupPosition != previousItem) expandableListView.collapseGroup(previousItem); previousItem = groupPosition; } }); } expandableListView = (ExpandableListView) findViewById(R.id.exp_listview); expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { int previousItem = -1; @Oviewride public void onGroupExpand(int groupPosition) { if (groupPosition != previousItem) expandableListView.collapseGroup(previousItem); previousItem = groupPosition; } }); 

    Tente colocair isso no seu ExpandableListAdapter, listView é uma reference ao ExpandableListView. E lastExpandedGroupPosition é uma vairiável de número integer definida dentro do seu ExpandableListAdapter.

      @Oviewride public void onGroupExpanded(int groupPosition) { //collapse the old expanded group, if not the same //as new group to expand if(groupPosition != lastExpandedGroupPosition) { listView.collapseGroup(lastExpandedGroupPosition); } super.onGroupExpanded(groupPosition); lastExpandedGroupPosition = groupPosition; } {  @Oviewride public void onGroupExpanded(int groupPosition) { //collapse the old expanded group, if not the same //as new group to expand if(groupPosition != lastExpandedGroupPosition) { listView.collapseGroup(lastExpandedGroupPosition); } super.onGroupExpanded(groupPosition); lastExpandedGroupPosition = groupPosition; } {  @Oviewride public void onGroupExpanded(int groupPosition) { //collapse the old expanded group, if not the same //as new group to expand if(groupPosition != lastExpandedGroupPosition) { listView.collapseGroup(lastExpandedGroupPosition); } super.onGroupExpanded(groupPosition); lastExpandedGroupPosition = groupPosition; } }  @Oviewride public void onGroupExpanded(int groupPosition) { //collapse the old expanded group, if not the same //as new group to expand if(groupPosition != lastExpandedGroupPosition) { listView.collapseGroup(lastExpandedGroupPosition); } super.onGroupExpanded(groupPosition); lastExpandedGroupPosition = groupPosition; } 

    Se o ExpandableListView tiview mais de 2 grupos:

     expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { @Oviewride public void onGroupExpand(int groupPosition) { for (int g = 0; g < expandableListAdapter.getGroupCount(); g++) { if (g != groupPosition) { expandableListView.collapseGroup(g); } } } }); } expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { @Oviewride public void onGroupExpand(int groupPosition) { for (int g = 0; g < expandableListAdapter.getGroupCount(); g++) { if (g != groupPosition) { expandableListView.collapseGroup(g); } } } }); } expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { @Oviewride public void onGroupExpand(int groupPosition) { for (int g = 0; g < expandableListAdapter.getGroupCount(); g++) { if (g != groupPosition) { expandableListView.collapseGroup(g); } } } }); } expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { @Oviewride public void onGroupExpand(int groupPosition) { for (int g = 0; g < expandableListAdapter.getGroupCount(); g++) { if (g != groupPosition) { expandableListView.collapseGroup(g); } } } }); 

    Ele irá reduzir todos os grupos, exceto o clicado.

    Eu também enfrentei o mesmo problema. Mas eu poderia resolview meu problema pelo seguinte código:

    Como eu tinha 4 headers na minha list expansível, com base nisso eu escrevi assim

     expListView.setOnGroupExpandListener(new OnGroupExpandListener() { @Oviewride public void onGroupExpand(int groupPos) { // TODO Auto-generated method stub expListView.collapseGroup(groupPos+1); expListView.collapseGroup(groupPos-1); expListView.collapseGroup(groupPos-2); expListView.collapseGroup(groupPos+2); expListView.collapseGroup(groupPos+3); expListView.collapseGroup(groupPos-3); } });` } expListView.setOnGroupExpandListener(new OnGroupExpandListener() { @Oviewride public void onGroupExpand(int groupPos) { // TODO Auto-generated method stub expListView.collapseGroup(groupPos+1); expListView.collapseGroup(groupPos-1); expListView.collapseGroup(groupPos-2); expListView.collapseGroup(groupPos+2); expListView.collapseGroup(groupPos+3); expListView.collapseGroup(groupPos-3); } });` 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.