Я знаю, что пейджер представления должен создавать как минимум три макета одновременно. Я могу обновить макет на экране, но как мне обновить два других макета?Как обновлять представления, созданные в настоящее время ViewPager
Например, у меня есть зеленый макет ViewPager, который заполняет весь экран.
Каждый раз, когда пользователь нажимает на экран, я хочу, чтобы цвет фона менялся от зеленого до фиолетового.
Я могу изменить цвет макета на экране, но как изменить цвет оставшихся двух макетов, которые были созданы (без повторного создания их)?
Идея заключалась бы в том, что пользователь мог бы листать влево или вправо, а экран уже был бы зеленым.
Вот мой pager_layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f0f0"
android:id="@+id/pager_layout">
</LinearLayout>
Здесь я создал CustomAdapter
класс и cick слушателя
public class CustomAdapter extends PagerAdapter {
@Override
public Object instantiateItem(ViewGroup collection, int position) {
LayoutInflater inflater = LayoutInflater.from(mContext);
ViewGroup pager_layout = (ViewGroup) inflater.inflate(R.layout.pager_layout, collection, false);
collection.addView(pager_layout);
setListener(pager_layout);
return pager_layout;
}
//etc...
}
Вот мой setListener();
метод
public void setListener(final View pager_layout){
pager_layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
l.setBackgroundColor(17170458); // purple
}
});
}