This code helps me to auto scrolling on click function but when the edit text4 is clicked it is scrolled up only one field above. I want that field to go to the top of the screen. I used scroll up, scroll by, scroll To, everything but all gives the same result. Would you please help.
package com.example.scrollview;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.EditText;
import android.widget.ScrollView;
public class MainActivity extends Activity{
EditText edtText4,edtText8;
ScrollView scrollView;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scrollView = (ScrollView)findViewById(R.id.scv);
edtText4 = (EditText)findViewById(R.id.editText4);
edtText8 = (EditText)findViewById(R.id.editText8);
edtText4.setOnTouchListener(selectedFieldTouchListener);
edtText8.setOnTouchListener(selectedFieldTouchListener);
}
private OnTouchListener selectedFieldTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int top1 = 0;
switch (v.getId()) {
case R.id.editText4:
top1 = edtText4.getTop();
break;
case R.id.editText8:
top1 = edtText8.getTop();
break;
}
final int top = top1;
scrollView.postDelayed(new Runnable() {//must be in postDelayed otherwise wont work
@Override
public void run() {
scrollView.scrollTo(0, edtText4.getTop());
}
}, 100);
return false;
}
};
}