2016-09-28 6 views
0

Я создал поле предложений и сгенерировал HTML-страницу с огромным текстом, поэтому я могу прокручивать. 1. Показать предлагаемый список 2. Прокрутить страницуgwt suggestbox не скрывается на странице scroll

Всплывающее окно с списком предложений перемещается со скроенной страницей, но я хочу, чтобы оно не скрывалось при прокрутке страницы и не перемещалось со страницей.

Как я понимаю, это предложение всплывающего окна имеет абсолютное положение. Но есть ли какое-то решение non css.


Ответ:

Я пытался добавить обработчик прокрутки окна, но я обнаружил, что ручка только случай, когда у меня есть two scrolls и право их движется, только в этом случае. Если у меня есть один свиток для прокрутки страницы, как в случае с большим количеством текста - ничто не вызывает

ответ

1

При построении SuggestBox вы можете предоставить свой собственный SuggestOracle, TextBox и SuggestionDisplay. DefaultSuggestionDisplay можно использовать для скрытия списка предложений. Вы можете сделать это в Window.scrollHandler.

Вот код:

MultiWordSuggestOracle oracle = new MultiWordSuggestOracle(); 
oracle.add("one"); 
oracle.add("two"); 
oracle.add("three"); 

TextBox box = new TextBox(); 
final DefaultSuggestionDisplay display = new DefaultSuggestionDisplay(); 

SuggestBox suggestBox = new SuggestBox(oracle, box, display); 

Window.addWindowScrollHandler(new ScrollHandler() { 
    @Override 
    public void onWindowScroll(ScrollEvent event) { 
     display.hideSuggestions(); 
    } 
}); 

Обратите внимание, что вам нужно использовать DefaultSuggestionDisplay - обратитесь к документации по устаревших hideSuggestionList метода.

Надеюсь, что этот пример объясняет все это.

Я также проверил, что, если вы не используете собственный SuggestionDisplay, он использует DefaultSuggestionDisplay в любом случае. Таким образом, вы можете сделать это еще проще.

((DefaultSuggestionDisplay) suggestBox.getSuggestionDisplay()).hideSuggestions(); 

EDIT:

Если не все окно прокручивается, но только содержание какого-либо панели, вы можете добавить ScrollHandler к панели:

panel.addDomHandler(new ScrollHandler() { 
    @Override 
    public void onScroll(ScrollEvent event) { 
     ((DefaultSuggestionDisplay) suggestBox.getSuggestionDisplay()).hideSuggestions(); 
    } 
}, ScrollEvent.getType()); 
+0

см добавление в ask –

+0

@DmitriyAltsyvanovich - попробуйте добавить 'ScrollHandler' в контейнер - см. мое редактирование. – Adam

+0

Да, спасибо. Я нашел правильный div с прокруткой и добавил обработчик к нему - он исправляет все мои проблемы) –

 Смежные вопросы

  • Нет связанных вопросов^_^