Определите, отображается ли виджет в окне просмотра в GWT - PullRequest
2 голосов
/ 03 марта 2012

Можно ли определить, отображается ли определенный виджет в окне просмотра?

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

BR

Ответы [ 2 ]

1 голос
/ 02 апреля 2014

Вот метод GWT, который выполняет задание (он переведен из решения JQuery здесь ).

/**
 * @param widget the widget to check
 * @return true if the widget is in the visible part of the page
 */
private boolean isScrolledIntoView(Widget widget) {
    if (widget != null) {
        int docViewTop = Window.getScrollTop();
        int docViewBottom = docViewTop + Window.getClientHeight();
        int elemTop = widget.getAbsoluteTop();
        int elemBottom = elemTop + widget.getOffsetHeight();
        return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
    }       
    return false;
}
0 голосов
/ 03 марта 2012

Взгляните на ShowMorePagerPanel из образца *1002* GWT CellList sample .

. Вы можете использовать getElement() виджета getOffsetTop() и элемента прокрутки getScrollTop() (эквивалентно getVerticalScrollPosition() для ScrollPanel), чтобы вычислить, является ли виджет в данный момент в представлении (остерегайтесь элементов 'getOffsetParent(), хотя, возможно, вы захотите установить CSS элемента прокрутки position до relative, чтобы сделать его смещенным родителем виджета)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...