如何在 android 中获取平板电脑的滚动位置

how to get scroll position for tablet in android

我正在尝试制作类似单页滚动网站的应用程序。我有一些菜单;如果我点击菜单,它会开始向下滚动并显示相应的段落;因为我添加了 videoview,一切正常,但是当我用平板电脑测试时 - 如果我单击菜单,它不会显示相应的段落,但会滚动。请提出一些解决方案提前致谢 这是我的代码。

  scroll.getViewTreeObserver().addOnScrollChangedListener(new OnScrollChangedListener() {
            @Override
            public void onScrollChanged() 
            {


                int scrollY = scroll.getScrollY(); 
                System.out.println(+scrollY);
                tv.setText("Escriba el mensaje y luego clickee el canal a ser enviadoEscriba el mensaje y luego clickee el canal a ser enviadoEscriba el mensaje y luego clickee el canal a ser enviado Escriba el mensaje y luego clickee el canal a ser enviadoEscriba el mensaje y luego clickee el canal a ser enviadoEscriba el mensaje y luego clickee el canal a ser enviado Escriba el mensaje y luego clickee el canal a ser enviadoEscriba el mensaje y luego clickee el canal a ser enviadoEscriba el mensaje y luego clickee el canal a ser enviado");
                tv1.setText("Escriba el mensaje y luego clickee el canal a ser enviadoEscriba el mensaje y luego clickee el canal a ser enviadoEscriba el mensaje y luego clickee el canal a ser enviado Escriba el mensaje y luego clickee el canal a ser enviadoEscriba el mensaje y luego clickee el canal a ser enviadoEscriba el mensaje y luego clickee el canal a ser enviado Escriba el mensaje y luego clickee el canal a ser enviadoEscriba el mensaje y luego clickee el canal a ser enviadoEscriba el mensaje y luego clickee el canal a ser enviado");
                if(scrollY>350)
                {
                    top.setVisibility(View.VISIBLE);
                    System.out.println("Success");
                    top.setX(400);
                    top.setY(550+scrollY);
                     if(link=="")
                    {
                        videoView.setVisibility(View.GONE);
                    }
                     videoView.setVisibility(View.VISIBLE);
                    mediaController.setAnchorView(videoView);
                    Uri video = Uri.parse(link);
                    videoView.setMediaController(mediaController);
                    videoView.setVideoURI(video);

                    videoView.setOnPreparedListener(new OnPreparedListener() {
                      public void onPrepared(MediaPlayer mp) {
                          //first starting the video, when loaded
                        videoView.start();
                          //then waiting for 1 millisecond
                          try {
                              Thread.sleep(1);
                          } 
                          catch (InterruptedException e) {
                              //     TODO Auto-generated catch block
                              e.printStackTrace();
                          }
                          videoView.pause();                       
                          mediaController.show();
                      }
                  });
                    top.setOnClickListener(new View.OnClickListener() 
                    {

                        @Override
                        public void onClick(View v) 
                        {
                            // TODO Auto-generated method stub
                            scroll.fullScroll(scroll.FOCUS_UP);

                        }
                    });
                }
                else
                {
                    top.setVisibility(View.INVISIBLE);
                }

            }

        });

        b2.setOnClickListener(new View.OnClickListener() {          
        @Override
        public void onClick(View v) {
            scroll.scrollBy(0, +400);               
        }
    });
    b3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            scroll.scrollBy(0, +1000);              
        }
    });

您在 scrollBy 方法中传递以像素为单位的绝对值。当然它不会在任何地方都有效,因为 android 可以在数千个不同的屏幕上运行。

所以我建议你从这个开始article,然后,当你清楚地理解这里的一切时,你应该去:

scroll.scrollBy(0, paragraphOneHeight + paragraphTwoHeight);

其中 paragraphOneHeightparagraphTwoHeight 是动态计算的 ScrollView 中适当段落的高度。