有没有办法以编程方式将滚动视图滚动到特定的编辑文本?

我的滚动视图活动很长。它是具有用户必须填写的各个字段的表单。我在表单的一半下方有一个复选框,当用户选中它时,我想滚动到视图的特定部分。是否可以通过编程方式滚动到EditText对象(或任何其他视图对象)?

另外,我知道使用X和Y坐标可以做到这一点,但是我想避免这样做,因为表单可能会因用户而异。


慕神8447489
浏览 332回答 3
3回答

九州编程

如果要将视图滚动到滚动视图的中心,可以大大提高Sherif elKhatib的答案。此可重复使用的方法将视图平滑滚动到HorizontalScrollView的可见中心。private final void focusOnView(final HorizontalScrollView scroll, final View view) {    new Handler().post(new Runnable() {        @Override        public void run() {            int vLeft = view.getLeft();            int vRight = view.getRight();            int sWidth = scroll.getWidth();            scroll.smoothScrollTo(((vLeft + vRight - sWidth) / 2), 0);        }    });}对于垂直ScrollView更改,输入的x和y位置smoothScroll。并使用view.getTop()代替view.getLeft()和view.getBottom()代替v.getRight()。

四季花海

这对我来说很好:  targetView.getParent().requestChildFocus(targetView,targetView);public void RequestChildFocus(查看子级,查看已聚焦)孩子 -这ViewParent想要对焦的孩子。该视图将包含焦点视图。实际上不一定是焦点。聚焦 -视图是实际具有焦点的孩子的后代
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android