I am trying to make application like single page scroll website. I have some menus; if i click the menu, it will start scroll down and show the corresponding Paragraph; in that I have added videoview, everything is working fine, but when I test with the tablet - if I click menu its not showing corresponding paragraph but its scrolling. kindly suggest some solution thanks in advance this is my code.
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);
}
});
You are passing absolute value in pixels in scrollBy
method. Of course it wouldn't work everywhere because android runs on thousands different screens.
So I suggest you to start from this article, and after, when you will clearly understand everything here, you should go with something like:
scroll.scrollBy(0, paragraphOneHeight + paragraphTwoHeight);
Where paragraphOneHeight
and paragraphTwoHeight
is dynamically calculated heights of proper paragraphs in your ScrollView.