У меня вопрос по использованию ExpandableListView. В моем случае у меня есть два групповых и два дочерних представления, в то время как дочерние представления состоят из RelativeLayout с несколькими кнопками, TextViews и т. д. в нем. Например, при расширении второй группы сначала и внесении некоторых изменений в держатели представлений и последующем расширении первой группы ранее сделанные изменения автоматически применяются и к дочернему представлению первой группы, почему это происходит?
Я зарегистрировался, когда вызываются представления:
// Фрагмент с ExpandableListView в нем создан, convertViews группы 0 и 1 равны нулю
convertView == null, GroupView, groupPosition 0
convertView == null, GroupView, groupPosition 1
// сначала раскрывается вторая группа, convertView of Child имеет значение null
getChildView: позиция группы 1, дочерняя позиция 0 convertView == null, ChildView
// расширенная первая группа после того, как convertView of Child больше НЕ имеет значение null
getChildView: позиция группы 0, дочерняя позиция 0 convertView != null, ChildView
Похоже, что он использует convertView дочернего элемента второй группы, может быть, тег не распознает вид ведьмы?
ИЗМЕНИТЬ:
@Override
public View getChildView(final int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
if (LOG)
Log.d(TAG, "getChildView: group position " + groupPosition + ", child position " + childPosition);
final ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_item_channel, null);
if (LOG) Log.d(TAG, "convertView == null, ChildView");
// add all the viewholders (...)
viewHolder.connect = (ToggleButton) convertView.findViewById(R.id.connect_tog);
viewHolder.channelOnOff = (Switch) convertView.findViewById(R.id.channel_switch);
convertView.setTag(viewHolder);
} else {
if (LOG) Log.d(TAG, "convertView != null, ChildView");
viewHolder = (ViewHolder) convertView.getTag();
}
return convertView;
}
Нет, я не меняю представления внешним адаптером, также класс ViewHolder является статическим классом.
Большое спасибо и ура, пингу