У меня есть адаптер пейджера, который предполагает раздувание сложного представления, представляющего календарь.
Для каждого года календаря требуется ~ 350 мс.
Чтобы повысить производительность, я хотел бы реализовать тот же механизм, который существует в адаптере массива ListView
для видов обработки (convertView
параметр getView()
).
Вот мой текущий getView()
из адаптера.
@Override
protected View getView(VerticalViewPager pager, final DateTileGrid currentDataItem, int position)
{
mInflater = LayoutInflater.from(pager.getContext());
// This is were i would like to understand weather is should use a recycled view or create a new one.
View datesGridView = mInflater.inflate(R.layout.fragment_dates_grid_page, pager, false);
DateTileGridView datesGrid = (DateTileGridView) datesGridView.findViewById(R.id.datesGridMainGrid);
TextView yearTitle = (TextView) datesGridView.findViewById(R.id.datesGridYearTextView);
yearTitle.setText(currentDataItem.getCurrentYear() + "");
DateTileView[] tiles = datesGrid.getTiles();
for (int i = 0; i < 12; i++)
{
String pictureCount = currentDataItem.getTile(i).getPictureCount().toString();
tiles[i].setCenterLabel(pictureCount);
final int finalI = i;
tiles[i].setOnCheckedChangeListener(new DateTileView.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(DateTileView tileChecked, boolean isChecked)
{
DateTile tile = currentDataItem.getTile(finalI);
tile.isSelected(isChecked);
}
});
}
return datesGridView;
}
Любые указатели или направление для реализации такого поведения?
В частности, как я могу узнать в адаптере, что один из DateTileGridViews
будет прокручиваться на экране, чтобы я мог сохранить его в памяти, чтобы повторно использовать его в следующий раз.