при использовании ScrollToPosition изображения не помещаются на весь экран, и отображается половина следующего изображения, но такое поведение происходит только тогда, когда я использую ScrollToPosition, но если я использую SmoothScrollToPosition, все работает нормально, и размеры изображений изменяются, чтобы заполнить весь экран, и только отображается один элемент.
Если я вручную прокручиваю элемент до элемента, все работает отлично? Я не могу использовать SmoothScrollToPosition для прокрутки до страницы номер 300, это займет вечность и выглядит очень некрасиво.
Я прикрепил изображение, чтобы показать ожидаемое поведение и проблему:
Ожидаемое поведение:

Проблема при использовании ScrollToPosition:
[img]https://i.stack .imgur.com/SRE3G.jpg[/img]
Я попытался исправить это с помощью snapHelper и с помощью CalculDistanceToFinalSnap для прокрутки, чтобы исправить проблему и разместить изображение сверху без дополнительного пространства. но на разных телефонах поведение у меня разное.
Вот мой код для перехода на страницу:
Код: Выделить всё
public void goToPage(int pageId)
{
try {
Log.d(TAG,"goToPage(String pageId) : go to page:"+pageId);
if(pageId=0)
{
// imageRecycleView.smoothScrollToPosition(pageId);
LinearLayoutManager manager=(LinearLayoutManager) imageRecycleView.getLayoutManager();
//manager.scrollToPositionWithOffset(page,0);
manager.scrollToPosition(pageId);
new Thread(()->{}).start();
imageRecycleView.postDelayed(() -> {
View view = manager.findViewByPosition(pageId);
if (view == null) {
return;
}
int[] snapDistance = snapHelper.calculateDistanceToFinalSnap(manager, view);
if (snapDistance[0] != 0 || snapDistance[1] != 0)
{
Log.d(TAG,"X:"+snapDistance[0]+"Y:"+snapDistance[1]+" toolbarsize:"+getToolBarHeight());
if(snapDistance[1]
Подробнее здесь: [url]https://stackoverflow.com/questions/78177275/issue-when-calling-scrolltoposition-in-recycleview-adapter-is-missing-up-the-lay[/url]