Android: анимация прокрутки WebView

я реализую приложение, которое имеет некоторое содержимое для отображения в веб-просмотре. Я до сих пор добился плавной анимации прокрутки содержимого веб-просмотра с помощью объекта Animator.

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

вот мой код, чтобы прокрутить содержимое веб-просмотра с помощью objectanimator.

            if (incre <= totalPages) {
                    incre++;
                    totalNumberofPages = totalNumberofPages + incre;
                    // view.loadUrl("javascript:pageScroll("
                    // + incre * view.getWidth() + ")");

                    ObjectAnimator anim = ObjectAnimator.ofInt(view,
                            "scrollX", 0, incre * view.getWidth());
                    anim.setDuration(4000);
                    anim.start();

                    // view.scrollTo(incre*view.getWidth(), 0);

                    anim.addListener(new AnimatorListener() {

                        @Override
                        public void onAnimationStart(Animator animation) {
                            // TODO Auto-generated method stub

                        }

                        @Override
                        public void onAnimationRepeat(Animator animation) {
                            // TODO Auto-generated method stub

                        }

                        @Override
                        public void onAnimationEnd(Animator animation) {
                            // TODO Auto-generated method stub
                            // view.scrollTo(0, incre*view.getWidth());

                            view.scrollTo(incre * view.getWidth(), 0);
                            ReaderActivity.txt_numberofpages_left
                                    .setText("Page:  " + incre + " of "
                                            + totalPages);
                            ReaderActivity.txt_leftPage.setText(""
                                    + totalNumberofPages);
                            ReaderActivity.txt_RightPage.setText(""
                                    + (totalNumberofPages + 1));
                        }

                        @Override
                        public void onAnimationCancel(Animator animation) {
                            // TODO Auto-generated method stub

                        }
                    });

person Umer Kiani    schedule 27.07.2014    source источник


Ответы (1)


это происходит из-за этой строки кода

  ObjectAnimator anim = ObjectAnimator.ofInt(view,
                        "scrollX", 0, incre * view.getWidth());
                anim.setDuration(4000);
                anim.start();

после scrollX u отправляет жестко закодированный 0, который заставит ваше содержимое прокручиваться от начала до позиции, поддерживать последнюю позицию и передавать эту позицию вместо этого 0.

person Community    schedule 29.07.2014