Как сбросить положение ScrollView внутри RecycleView каждый раз, когда RecycleView Scrolled - PullRequest
0 голосов
/ 06 июля 2018

У меня есть горизонтальная прокрутка RecycleView, и у каждого ее элемента есть вертикальная прокрутка ScrollView. Когда я прокручиваю ScrollView вниз, он запоминает эту позицию и не сбрасывается в верхнюю часть, когда я прокручиваю RecycleView к другому элементу, например так:

enter image description here

Может ли кто-нибудь дать мне совет сделать сброс ScrollView на самый верх при прокрутке RecycleView?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Вы можете назвать это:

scrollView.fullScroll(ScrollView.FOCUS_TOP)

или это:

 scrollView.scrollTo(0,0);

и вы можете использовать это в onBindeViewHolder в вашем адаптере, когда вы инициализируете viewHolder, или вы можете подключить прослушиватель прокрутки к вашему RecyclerView и обнаружить прокрутку с помощью прослушивателя прокрутки

может быть как то так!

  recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
                @Override
                public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

                    LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();

                    int fVitem = linearLayoutManager.findFirstVisibleItemPosition();
                    int lVitem = linearLayoutManager.findLastVisibleItemPosition();

                    for (int i = fVitem; i <= lVitem; i++) {

                        View view = linearLayoutManager.findViewByPosition(i);

                        ScrollView scrollView;


                        if (view.getTag() != null) scrollView = (ScrollView) view.getTag();
                        else {
                            scrollView = view.findViewById(R.id.myScrollView);
                            view.setTag(scrollView);
                        }
                        scrollView.scrollTo(0, 0);
                    }

                }
            });

но я думаю, что если вы используете obBindViewHolder, будет лучше для производительности

0 голосов
/ 06 июля 2018

Позвоните, когда вы обнаружите прокрутку RecyclerView

yourScrollView.fullScroll(ScrollView.FOCUS_UP);
...