如何在 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);
其中 paragraphOneHeight
和 paragraphTwoHeight
是动态计算的 ScrollView 中适当段落的高度。
我正在尝试制作类似单页滚动网站的应用程序。我有一些菜单;如果我点击菜单,它会开始向下滚动并显示相应的段落;因为我添加了 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);
其中 paragraphOneHeight
和 paragraphTwoHeight
是动态计算的 ScrollView 中适当段落的高度。