Почему 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 является статическим классом.

Большое спасибо и ура, пингу

0 ответов

Другие вопросы по тегам