my problem is quite simple actually, I couldn't find a way to do what's mentionned in my question. I tried with AsyncTask, which didn't work at all, also with the OnFocusChange event of the button... I'm a bit desperate at now.
Hope you guys could help ! :)
AsyncTask Version :
private void creationVoid(){
(...)
btScrollDown.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN)
downPressed = true;
if(event.getAction() == MotionEvent.ACTION_UP)
downPressed = false;
new ScrollDownTask().execute();
return true;
}
});
(...)
}
private void scrollDown(){
btScrollUp.setVisibility(View.VISIBLE);
scrollView.scrollTo(scrollView.getScrollX(), scrollView.getScrollY() + 15);
if(scrollView.getScrollY() == scrollView.getChildAt(scrollView.getChildCount()-1).getBottom() - 763) {
btScrollDown.setVisibility(View.GONE);
}
}
private class ScrollDownTask extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... params) {return null;}
@Override
protected void onPostExecute(String s) {
while(downPressed)
scrollDown();
}
}
OnFocusChange Version :
private void creationVoid(){
(...)
btScrollDown.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
while(hasFocus)
scrollDown();
}
});
(...)
}