我们可以通过监听EditText的focus状态,来手动控制ScrollView的滚动位置。具体实现代码如下:
//获取ScrollView和EditText实例
ScrollView scrollView = findViewById(R.id.scrollView);
EditText editText = findViewById(R.id.editText);
//监听EditText的focus状态
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
//如果EditText聚焦,滚动ScrollView到EditText的位置
scrollView.scrollTo(0, editText.getTop());
}else{
//如果EditText失焦,将ScrollView滚动到顶部
scrollView.scrollTo(0, 0);
}
}
});
这样,当EditText获得或失去焦点时,就能按照我们的期望进行ScrollView的滚动了。