我有一个包含大量字段的表单,当我按下“提交”按钮时,我希望滚动视图跳转到未应答字段所在的位置。是否有除了scrollto(x,y)之外的方法来执行此操作,或者这样的坐标必须始终以某种方式映射到表单的元素(类似于(表单元素).getCoordinates())?
由于
答案 0 :(得分:6)
这应该有效 -
view.setFocusableInTouchMode(true);
view.requestFocus();
view.requestRectangleOnScreen(viewRectangle);
您可以随时查看View类。
P.S。未选择的字段将被选中,但我不确定如果它不在屏幕上,则活动将滚动到所请求的位置。
答案 1 :(得分:2)
ScrollViews确实有预定义的方法scrollTo()& scrollBy()用于此类功能。
我相信你在获得坐标时遇到了问题。因此,我建议使用View.getHeight方法& amp;来建议每个视图的存储高度(消耗垂直空间)。以Map collection存储高度。 以下是我尝试的代码段
scrollView.post(new Runnable() {
public void run() {
Integer emailTextViewHeight = (Integer)hashMap.get("EmailTextViewHeight");
scrollView.scrollBy(0, emailTextViewHeight);//scrolls to emailTextView
}
});