Почему ExpandableListView изменяет настройки ChildView (Android)?
У меня есть вопрос к использованию ExpandableListView. В моем случае у меня есть два групповых и два дочерних представления, в то время как дочерние представления состоят из RelativeLayout с несколькими кнопками, TextView и т. Д. Например, при первом расширении второй группы и внесении некоторых изменений в держатели просмотра и последующем расширении первой группы ранее сделанные изменения автоматически применяются и к дочернему представлению первой группы. Почему это происходит?
Я вошел, когда представления называются:
// фрагмент с ExpandableListView в нем создан, convertViews группы 0 и 1 равны нулю
convertView == null, GroupView, groupPosition 0
convertView == null, GroupView, groupPosition 1
// сначала развернута вторая группа, convertView of Child равен нулю
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 является статическим классом.
Большое спасибо и ура, пингу