Как динамически обновлять элементы зрения переработчика на определенной позиции из класса обслуживания? - PullRequest
0 голосов
/ 22 мая 2019

У меня есть элемент анимации в представлении рециркулятора, здесь я пытаюсь настроить его видимость на видимый и невидимый из сервиса, потому что я успешно создал методы, а представление рециркулятора становится манипулируемым, но здесь главная проблема заключается в том, что когда я нажимаюна первом элементе представления переработчика, скажем, в позиции 1, я устанавливаю видимость моего представления анимации как видимую, однако, если я нажимаю на другой элемент с набором № 5, тогда видимость этого элемента будет установлена ​​правильно, однако я хочу сделать предыдущий нажатый элемент невидимымкак я могу это сделать?

вот мой код, когда я устанавливаю видимость внутри при нажатии:

holder.itemView.setOnClickListener(View.OnClickListener {
                   holder.playanim.visibility = View.VISIBLE
        })

это мой элемент XML:

 <com.airbnb.lottie.LottieAnimationView
            android:id="@+id/playinganim"
            android:layout_marginTop="5dp"
            android:layout_width="45dp"
            android:layout_weight="20"
            android:visibility="invisible"
            app:lottie_autoPlay="true"
            app:lottie_loop="true"
            app:lottie_fileName="playing.json"
            android:layout_toRightOf="@id/sname"
            android:layout_height="45dp"
            />

1 Ответ

0 голосов
/ 22 мая 2019

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

@Override
    public void onBindViewHolder(ViewHolder holder, int position) {

        holder.yourView.setVisibility(position == lastCheckedPosition ? View.VISIBLE : View.INVISIBLE);
        holder.yourView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                holder.yourView.setVisibility(View.VISIBLE);
                notifyItemChanged(lastCheckedPosition);
                lastCheckedPosition = position;
            }
        });
        super.onBindViewHolder(holder, position);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...