滚动到表单元素

时间:2010-12-27 20:20:38

标签: android forms scroll

我有一个包含大量字段的表单,当我按下“提交”按钮时,我希望滚动视图跳转到未应答字段所在的位置。是否有除了scrollto(x,y)之外的方法来执行此操作,或者这样的坐标必须始终以某种方式映射到表单的元素(类似于(表单元素).getCoordinates())?

由于

2 个答案:

答案 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
                 }
             });