RecyclerView прокручивается медленно с тремя элементами и ImageViews в элементах - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь сделать простое представление рециркулятора, которое в настоящее время показывает только три представления карты, каждое с изображением, сдвинутым влево. Так как сейчас есть только три элемента, все виды карт видны на экране, и прокручивать нечего. Однако, когда я пытаюсь прокрутить, индикатор свечения полукруглой прокрутки вверху или внизу экрана обнаруживается и действует очень медленно и дергается. (Эта вещь: свиток-свечение )

Я обнаружил, что если я закомментирую строку:

holder.imageView.setImageResource(currentItem.getDrawableId());

в onBindViewHolder(MyHolder holder, int position), затем рывок исчезает, а индикатор свитка свечения действует плавно и плавно.

currentItem.getDrawableId() просто ищет ресурс, сохраненный в 2d массиве, например:

private static int[][] resources = {{R.drawable.00, R.drawable.01}, {R.drawable.10, R.drawable.11}};
...
return resources[mX][mY];

Я также заметил, что если я просто заменю currentItem.getDrawableId() жестко закодированным R.drawable.p00, то он также будет работать плавно. Итак, я думаю, что что-то странное в том, что каждый предмет имеет свой ресурс ...? Или, может быть, поиск в 2d массиве идет медленно .....?

Наконец, у меня есть строки:

recyclerView.setHasFixedSize(true);
recyclerView.setItemViewCacheSize(20);
recyclerView.setDrawingCacheEnabled(true);

и они, похоже, ничего не делают для этого свитка.

Итак, что может быть причиной этого рывка, и как я могу это исправить?

...