Как свернуть все детские взгляды на расширяемом представлении переработчика

У меня есть мой расширяемый набор утилизаторов с двумя макетами HEADER и CHILD. Все работает нормально.

вот мой снимок экрана.

Я использовал разные макеты для заголовка и ребенка.

когда пользователи нажимают один заголовок, я хочу, чтобы моя программа проверяла, развернут ли какой-либо другой заголовок. если да, то его нужно свернуть. при нажатии на одно меню последний развернутый вид должен свернуться.

Я пытался использовать логический флаг. Кто-нибудь может мне помочь, пожалуйста

3 ответа

Решение

Если вы используете эту библиотеку для создания своих расширяемых разделов, как в этом примере, вы можете перебирать экземпляры вашего ExpandableContactsSection и проверять флаг "расширенный".

Работа с переработчиком Big Nerd Ranch: разверните библиотеку ('com.bignerdranch.android:expandablerecyclerview:1.0.3')

В RecyclerAdapter.Java код...

 @Override
public void onParentItemClickListener(int position) {
    /**
     * @Params
     * Se comienza en -1, al clickear el primer grupo, se registra en la variable su posicion
     * al clickear el siguiente grupo, si la variable no es igual a su posicion se procede a
     * cerrar el grupo anterior.
     * */

    Object parent = mParentItemList.get(position);
    //Toast.makeText(mContext,"posicion "+String.valueOf(position),Toast.LENGTH_SHORT).show();

    if(lastExpanded == -1){
        lastExpanded = position;

    } else if(lastExpanded == position){
        lastExpanded = -1; //Reinicia Variable

        notifyItemChanged(position);
    }else{
        //Cierra grupo abierto
        int oldExpand = lastExpanded;
        Toast.makeText(mContext,"se cerro  "+String.valueOf(oldExpand),Toast.LENGTH_SHORT).show();
        lastExpanded = position;

        //Need the colapse group code

        notifyItemChanged(oldExpand);
        notifyItemChanged(position);
    }

    super.onParentItemClickListener(position);
}

Мне нужно, как свернуть группу после нажатия другой parentGroup...

Если у вас есть решение, прокомментируйте меня пожалуйста

Если у вас есть логический флаг, сохраняйте расширенные состояния коллапса. Вы можете написать функцию, чтобы Итерировать ваш набор данных ArrayList и установить его в false/true и вызвать

adapter.notifyDatasetChanged();
Другие вопросы по тегам