Ho una lista espandibile utilizzando due cursori: 1 per il gruppo, un altro per i bambini relativi al gruppo. L'utente può utilizzare un filtro (alphaindexer) in questo elenco espandibile. Vorrei eliminare completamente la vista di gruppo quando non ci sono bambini (non solo l'icona :)). È come se cancellassi la linea per il gruppo vuoto.Nascondere la vista di gruppo in ExpandableList
Provo ad impostare la visibilità sul metodo bindgroupview. Provo ad impostare l'altezza del layout per la vista del gruppo .... Il risultato è lo stesso, lo spazio è ancora conservato e visualizzato.
È possibile e come posso fare questa funzione?
Alcuni codice qui sotto:
// mMapSeqArticle is TreeMap<Object, ArrayList<Object>)
mSequenceAdapter = new SequenceCommandeAdapter(getActivity(), mMapSeqArticle);
public class SequenceCommandeAdapter extends BaseExpandableListAdapter {
Object[] mGroupSeq = null;
Map<Sequence, ArrayList<TicketArticle>> mContent;
public SequenceCommandeAdapter(Context c,
Map<Sequence, ArrayList<TicketArticle>> map) {
mContent = map;
mGroupSeq = mContent.keySet().toArray();
}
@Override
public Object getChild(int groupPosition, int childPosition) {
Sequence s = (Sequence) mGroupSeq[groupPosition];
return ((ArrayList<TicketArticle>) (mContent.get(s)))
.get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
Sequence s = (Sequence) mGroupSeq[groupPosition];
return ((ArrayList<TicketArticle>) (mContent.get(s)))
.get(childPosition).mId;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
// retrouve la valeur de la sequence
TicketArticle ta = (TicketArticle) getChild(groupPosition,
childPosition);
if (convertView == null) {
convertView = LayoutInflater.from(getActivity()).inflate(
R.layout.adapter_row_article_details_table, null);
}
convertView.setTag(groupPosition + ":" + childPosition);
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
Sequence s = (Sequence) mGroupSeq[groupPosition];
return ((ArrayList<TicketArticle>) (mContent.get(s))).size();
}
@Override
public Object getGroup(int groupPosition) {
return (Sequence) mGroupSeq[groupPosition];// mContent.get(groupPosition);
}
@Override
public int getGroupCount() {
return mContent.size();
}
@Override
public long getGroupId(int groupPosition) {
return ((Sequence) mGroupSeq[groupPosition]).key;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getActivity()).inflate(
R.layout.adapter_header_sequence_details_table, null);
}
convertView.setTag(null);
return convertView;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}
}