2016-05-26 5 views
1

моя проблема довольно проста на самом деле, я не мог найти способ сделать то, что упоминается в моем вопросе. Я попытался с AsyncTask, который не работал вообще, также с событием OnFocusChange кнопки ... Я немного отчаянно сейчас.Как сделать прокрутку прокрутки при нажатии кнопки?

Надеюсь, вы, ребята, могли бы помочь! :)

AsyncTask Версия:

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 Версия:

private void creationVoid(){ 
    (...) 
    btScrollDown.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      while(hasFocus) 
       scrollDown(); 
     } 
    }); 
    (...) 
} 
+0

Пожалуйста, добавьте ваш код того, что вы пытались до сих пор. – yennsarah

+0

Добавлен код;) – ArteFact

ответ

1

Когда кнопка нажата, вы можете позвонить или метод smoothScrollBysmoothScrollTo. Тем не менее, вам необходимо, исходя из вашего требования, рассчитать, сколько прокрутить представление. Надеюсь это поможет.

https://developer.android.com/reference/android/widget/ScrollView.html#smoothScrollBy(int,%20int)

+0

Не знаю, потому что мне нужно прокручивать многократно, что является основной проблемой, но это помогает в других целях благодаря обмену! – ArteFact

+0

Посмотрите на это http://stackoverflow.com/questions/13737754/put-the-scroll-view-under-the-up-and-down-button. Кажется очень близким к тому, что вы хотите. –

1

Вот мой подход.

  • Запуск таймера при нажатии на кнопку и отменить таймер, когда вы поднимаете касание с помощью кнопки
  • На таймере выстрелил метод, пролистайте с помощью определенного значения (у).

Правильно настройте интервал таймера и значение scrollBy y, чтобы удовлетворить ваши требования.

+0

Кажется интересным, не могли бы вы добавить код? – ArteFact

Смежные вопросы