Выделите элемент формы - PullRequest
       1

Выделите элемент формы

4 голосов
/ 27 декабря 2010

У меня есть форма с большим количеством полей, и когда я нажимаю кнопку «отправить», я бы хотел, чтобы представление прокрутки переместилось в положение, где находится поле без ответа. Есть ли метод, отличный от scrollto (x, y), чтобы сделать это, или такие координаты всегда должны каким-либо образом сопоставляться с элементами формы (что-то вроде (элемент формы) .getCoordinates ())?

Спасибо

Ответы [ 2 ]

6 голосов
/ 27 декабря 2010

Это должно работать -

view.setFocusableInTouchMode(true);
view.requestFocus();
view.requestRectangleOnScreen(viewRectangle);

Вы всегда можете взглянуть на класс View.

P.S. Поле без ответа будет выбрано, но я не уверен, что если оно выходит за пределы экрана, действие будет прокручиваться до запрошенной позиции.

2 голосов
/ 06 января 2011

ScrollViews имеют предопределенные методы 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
                 }
             });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...