1

Так у меня есть Scrollview, который имеет только один взгляд на него (EditText), и я хочу, чтобы реализоватьScrollView вернуться к началу

dispatchTouchEvent(MotionEvent me) 
View current_view = Processor.findViewGroupWithPoint(
      (int) me.getRawX(), (int) me.getRawY(), rmodel.layout.parent); 
    if (current_view instanceof ScrollView) { 


     switch(me.getAction()){ 
     case MotionEvent.ACTION_DOWN: 
      Log.d(TAG, " down"); 

      ((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_DOWN); 

      break; 
     case MotionEvent.ACTION_UP: 
      Log.d(TAG, " up"); 
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_UP); 
      break; 
     } 

}

Моя проблема в том, когда я прокрутки вниз, он работает, но я должен держать палец на экране, как если бы я его удалил, он вернется в начало scrollView.

ответ

1

Насколько я могу судить, он выходит в начало scrollView, когда вы отпускаете, потому что вы это рассказываете. вы говорите

case MotionEvent.ACTION_UP: 
    Log.d(TAG, " up"); 
    ((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_UP); 

MotionEvent.ACTION_UP используется для обнаружения, когда ваш палец освобождается, поэтому, когда он делает в этом вы сказать ему, чтобы идти к вершине с

((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_UP); 

Чтобы это исправить, все, что вам действительно нужно сделать, это удалить эту строку ...

EDIT:

Я написал это, и это должно работать, может потребоваться некоторые хитрости.

boolean bottom = false; 

В основном здесь просто создать логическое называется дно и установить его на ложный ^^

case MotionEvent.ACTION_DOWN: 
    Log.d(TAG, " down"); 

    if (bottom = false){ 
     ((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_DOWN); 
    }else{ 
     ((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_UP); 
    } 
    break; 
} 

Это просто увидеть, если ScrollView находится на дне или сейчас ... Надеюсь, что это работает!

+0

true, когда я реализую корпус MotionEvent.ACTION_DOWN: Log.d (TAG, «down»); ((ScrollView) findViewById (111111)). FullScroll (View.FOCUS_DOWN); один, он подталкивает меня к дну, никогда не подпираю, но я тоже хочу быть в состоянии встать, когда я поднимусь вверх, есть ли возможность сделать то же самое? –

+0

Вы можете использовать оператор if, чтобы определить, находится ли он внизу или сейчас. Я попытаюсь добавить пример, но посмотрю, сможете ли вы понять это сами! –

+0

спасибо Tristan Wiley –

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