当用户点击edittext时,我尝试滚动到特定点,因此添加以下代码以收听点击并关注此edittext:
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 :(得分: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;
}
});
答案 1 :(得分:0)
也许有点晚,但是对解决方案感兴趣的人: 替换
scrollView.smoothScrollTo(0, 500)
使用
scrollView.postDelayed(() -> scrollView.smoothScrollTo(0, 500), 200);
为我工作。