Горизонтальная прокрутка ReyclerView в положение не работает - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть recyclerView , который выбирает данные из FireBase, reyclerView имеет значение по горизонтали , имея только один элемент, который потенциальный пользователь можно увидеть (какой-то читатель страницы).

Я хочу сохранить положение прокрутки рейклера, чтобы использовать его при смене поворота. Для этого я попытался увидеть, как работают разные вещи (например, scrollBy, scrollToPosition и некоторые другие), но я не могу заставить их работать, потому что они просто не влияют на recyler.

Я очень нуб, поэтому я определенно что-то не так делаю, но не могу понять, что именно.

Не могли бы вы помочь мне с этим и объяснить как можно подробнее, как это сделать? , было бы здорово.

Код, который настраивает реселлерПросмотреть:

private void SetUpPagesRecyclerView() {
        pagesRecyclerView = findViewById(R.id.pagesRecycler);
        pagesListAdapter = new PagesListAdapter(this, pagesList);
        pagesRecyclerView.setAdapter(pagesListAdapter);

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
        pagesRecyclerView.setLayoutManager(linearLayoutManager);
        //one item is seen
        SnapHelper snapHelper = new PagerSnapHelper();
        snapHelper.attachToRecyclerView(pagesRecyclerView);
        /*pagesRecyclerView.getLayoutManager().scrollToPosition(linearLayoutManager.findFirstVisibleItemPosition() + 1);
        //pagesRecyclerView.scrollBy(2, 0);
        //!!! NO EFFECT
        //linearLayoutManager.scrollHorizontallyBy(2, ,);
        //pagesRecyclerView.scrollBy(10, 0);
        //pagesRecyclerView.scrollToPosition(2);
        //linearLayoutManager.scrollToPositionWithOffset(2, 5);*/

        //current position of seen item
        pagesRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                if(newState == RecyclerView.SCROLL_STATE_IDLE){
                    //get position
                    page_position = ((LinearLayoutManager)pagesRecyclerView.getLayoutManager())
                            .findFirstVisibleItemPosition();
                    //set current page
                    currentPageTextView.setText(String.valueOf(page_position +1));
                    Log.d("currentId", String.valueOf(page_position + 1));
                }
            }
        });
    }

Я пытаюсь сделать: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...