Я использую расширяемый список.Когда я пытаюсь израсходовать группу, расширение группы занимает 5 секунд, а когда я щелкаю по другой группе, последняя израсходованная группа расходуется снова и снова 2-3 раза.Я сделал Google, но я не мог найти то, что я хочу.Как я могу это сделать?
Фрагмент, где используется Expendablelistview
listDataHeader = new ArrayList<>();
listDataChild = new HashMap<String, List<String>>();
// Adding child data
listDataHeader.add("Which method?");
listDataHeader.add("What age can you start?");
listDataHeader.add("When not to start?");
listDataHeader.add("When do I start?");
listDataHeader.add("Do I have to stay in forever for naps?");
// Adding child data
List<String> Which_method = new ArrayList<>();
Which_method.add("group1");
List<String> When_not = new ArrayList<>();
When_not.add("Group2");
List<String> What_age = new ArrayList<>();
What_age.add("Group3");
List<String> When_do = new ArrayList<>();
When_do.add("Group4");
List<String> Do_I_have = new ArrayList<>();
Do_I_have.add("Group5");
listDataChild.put(listDataHeader.get(0), Which_method); // Header, Child data
listDataChild.put(listDataHeader.get(1), When_not);
listDataChild.put(listDataHeader.get(2), What_age);
listDataChild.put(listDataHeader.get(3), When_do);
listDataChild.put(listDataHeader.get(4), Do_I_have);
listAdapter = new ExpandableListAdapt(getContext(), listDataHeader, listDataChild);
expListView.setAdapter(listAdapter);
ExpendableAdapter
public class ExpandableListAdapt extends BaseExpandableListAdapter {
private Context context;
private List<String> header;
private HashMap<String, List<String>> expendedData;
private MarkdownView markdownView;
private TextView txtlistHeader;
private String childtext;
public ExpandableListAdapt(Context context, List<String> header, HashMap<String, List<String>> expendedData) {
this.context = context;
this.header = header;
this.expendedData = expendedData;
}
@Override
public void registerDataSetObserver(DataSetObserver dataSetObserver) {
}
@Override
public void unregisterDataSetObserver(DataSetObserver dataSetObserver) {
}
@Override
public int getGroupCount() {
return header.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return this.expendedData.get(this.header.get(groupPosition)).size();
}
@Override
public Object getGroup(int groupPosition) {
return this.header.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return this.expendedData.get(this.header.get(groupPosition)).get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return false;
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.list_group, null);
String headTitle = (String) getGroup(groupPosition);
txtlistHeader = convertView.findViewById(R.id.lblListheader);
// Typeface regularMon = Typeface.createFromAsset(convertView.getResources().getAssets(), "Montserrat-Regular.otf");
txtlistHeader.setText(headTitle);
return convertView;
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View view, ViewGroup parent) {
LayoutInflater inflate = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflate.inflate(R.layout.list_item_child, parent,false);
childtext = (String) getChild(groupPosition, childPosition);
markdownView = view.findViewById(R.id.lblListitem);
markdownView.loadMarkdown(childtext);
//Setting Resource
return view;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}