Ich benutze ExpandableListView in Fragment, alles funktioniert gut, bis ich eine Gruppe erweitern, die einen ausgewählten Wert hat (d. H. In orange-ish-Farbe). ExpandableListView-Elemente wechseln die Position, wenn eine Gruppe erweitert wird
Jetzt, nach einer Gruppe, zum Beispiel Gebet Erinnerung erweitert, es sieht aus wie dieser
Beachten Sie, dass Elemente in den roten Rechtecke Orte eingeschaltet haben.
Hier sind meine getGroupView()
und getChildView()
Methoden
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.prayer_settings_list_item, parent, false);
}
((TextView) convertView.findViewById(R.id.setting_name_tv)).setText((String) getGroup(groupPosition));
return convertView;
}
@Override
public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.azan_selection_item, parent, false);
MontserratRegTextView azanVoiceMakkahTv = (MontserratRegTextView) convertView.findViewById(R.id.azan_voice_tv);
final ImageView icPlayPause = (ImageView) convertView.findViewById(R.id.azan_play_ic);
icPlayPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PrayerSettingsFragment.listener.onClick(childPosition, icPlayPause);
}
});
String azanVoice = (String) getChild(groupPosition, childPosition);
azanVoiceMakkahTv.setText(azanVoice);
return convertView;
}