Установите фокус на конкретный TableRow из TableLayout в Android - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть одна таблица, и она содержит 2 просмотра текста в одной строке. Все мои строки добавляются динамически через действие, и моя таблица находится в режиме прокрутки. Таким образом, по мере добавления строк таблица прокручивается шаг за шагом.

Я также могу поддерживать все созданные и добавленные идентификаторы строк из таблицы.

Я хочу вернуться к номеру строки, указанному пользователем. Допустим, пользователь дает 5 в качестве номера строки. Итак, моя таблица должна быть прокручена в строке № 5, чтобы строка появлялась на экране, и пользователь мог видеть содержимое 5-й строки.

Я брожу с двух дней, чтобы найти решение для этого, но не получаю никакого способа достичь этого.

У кого-нибудь есть решение для этого?

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

Чтобы получить его при вызове прокрутки TableRow.requestRectangleOnScreen() (замените "TableRow" фактическим объектом TableRow в вашем коде).

Вы можете использовать что угодно для координат прямоугольника (например, 0, 0,0,0) но я полагаю, что использование чего-то вроде Rect(0, 0, TableRow.getWidth(), TableRow.getHeight()) обеспечит прокрутку всей строки, чтобы она полностью отображалась на экране.

На самом деле любой объект View поддерживает requestRectangleOnScreen(), поэтому поэкспериментируйте с ним.

0 голосов
/ 16 июля 2018
 Rect rectangle=new Rect();
 row.getDrawingRect(rectangle);
 row.requestRectangleOnScreen(rectangle);

проверено и работает. Благодаря @ CR

...