我有一个表单,有很多字段,当我按下“提交”按钮时,我希望滚动视图跳转到未回答字段所在的位置。除了scrollto(x,y)之外,是否还有其他方法可以实现这个功能,或者这些坐标必须始终映射到表单的元素上(类似于(form element).getCoordinates())?
谢谢
我有一个表单,有很多字段,当我按下“提交”按钮时,我希望滚动视图跳转到未回答字段所在的位置。除了scrollto(x,y)之外,是否还有其他方法可以实现这个功能,或者这些坐标必须始终映射到表单的元素上(类似于(form element).getCoordinates())?
谢谢
view.setFocusableInTouchMode(true);
view.requestFocus();
view.requestRectangleOnScreen(viewRectangle);
ScrollView有预定义的方法scrollTo()和scrollBy()可以实现此功能。
我认为您在获取坐标方面存在问题。因此,我建议使用View.getHeight方法存储每个占用垂直空间的视图的高度,并将高度存储在Map集合中。 以下是我尝试的代码片段
scrollView.post(new Runnable() {
public void run() {
Integer emailTextViewHeight = (Integer)hashMap.get("EmailTextViewHeight");
scrollView.scrollBy(0, emailTextViewHeight);//scrolls to emailTextView
}
});