Анимированные виды внутри Recyclerview - PullRequest
0 голосов
/ 05 сентября 2018

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

Использование общего аним XML

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<translate
    android:fromXDelta="-100%p"
    android:toXDelta="0"
    android:repeatCount="infinite"
    android:duration="3000"/>

//IS WORKING FINE, MOVES RECYCLERVIEW ACROSS SCREEN !

Код для Recyclerview

Animation animLinear;

//OnCreate
recyclerView = findViewById(R.id.item_list);    
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true));
recyclerView.setAdapter(new Adapter_Main_Markets());
recyclerView.startAnimation(animLinear);

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

//Adapter Main Markets
@Override
public void onBindViewHolder(@NonNull Adapter_Main_Markets.MyViewHolder holder, int position) {
    holder.mIdView.setText("" + market_list[position]);
    holder.mPriceView.setText("$ " + int_list[position]);
    holder.mChangeView.setText(change_list[position]);

}

Нужна ли мне петля для представлений в адаптере? Может быть, установить анимацию там? Любая помощь будет оценена.

Это RecyclerView

Предмет A Предмет B Предмет C Предмет D Предмет E.

Что на самом деле показывает на экране в видимой области Предмет A Предмет B Пункт C.

Так что, конечно, видимый «Элемент A Элемент B Элемент C» проходит по экрану, но это не то, что я хочу.

Я хочу, чтобы пункт A прошел по экрану, затем элемент B, элемент C, затем D, затем E.

1 Ответ

0 голосов
/ 05 сентября 2018

Если вы хотите animate просмотры внутри RecyclerView, то вам нужно анимировать itemview внутри ViewHolder конструктора следующим образом:

class `Your view holder class` extends RecyclerView.ViewHolder {

    `Constructor of your class`(View view) {
        super(view);
        //This piece of code will animate your itemview inside recyclerview
        new Handler().postDelayed(() -> {
            view.setVisibility(View.VISIBLE);
            view.startAnimation(AnimationUtils.loadAnimation(view.getContext(), android.R.anim.fade_in // Change your anim file here));
        }, 100);
        setIsRecyclable(true);// Just to ensure that everytime view gets invisible, it should be recycled for next time recreation.
    }
}

Следующая вещь - удалить счетчик повторений из вашего anim.xml

Удалить android:repeatCount="infinite" это так, чтобы представление было одушевлен, только когда он становится видимым.

...