2015-12-15 2 views
0

Я стараюсь, чтобы перейти к конкретной точке, когда пользователь нажимает на EditText, поэтому добавил следующий код для прослушивания нажмите и сосредоточиться на этом EditText:scrollTo после фокуса/OnClick событие работает только после второго щелчка

et_email = (EditText) view.findViewById(R.id.editEmail); 
    //bring to center of screen when clicked/focused 
    et_email.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      ScrollView scrollView = (ScrollView)getView().findViewById(R.id.ScrollViewSendDetails); 
      scrollView.smoothScrollTo(0, 500); 
     } 
    }); 
    et_email.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      ScrollView scrollView = (ScrollView) getView().findViewById(R.id.ScrollViewSendDetails); 
      scrollView.smoothScrollTo(0, 500); 
     } 
    }); 

Проблема в том, что прокрутка работает только после второго щелчка. В первом щелчке на edittext ничего не происходит

+0

Я не думаю, что вам нужен 'OnFocusChangeListener'. – Sufian

ответ

0

Почему вы слушаете то же самое? Попробуйте использовать прослушиватель onTouch:

et_email.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if (MotionEvent.ACTION_DOWN == event.getAction()) { 
       ScrollView scrollView = (ScrollView)getView().findViewById(R.id.ScrollViewSendDetails); 
       scrollView.smoothScrollTo(0, 500); 
      } 
      return false; 
     } 
    }); 
Смежные вопросы