gpt4 book ai didi

java - gwt suggestbox 不会隐藏在页面滚动上

转载 作者:行者123 更新时间:2023-12-01 09:27:07 25 4
gpt4 key购买 nike

我创建了一个建议框并生成了包含大量文本的 HTML 页面,因此我可以滚动。1. 显示建议列表2. 滚动页面

带有建议列表的弹出框会随着页面滚动而移动,但我希望它既不会在页面滚动时隐藏,也不会随页面移动。

据我了解,建议弹出窗口具有绝对位置。但是有没有一些非CSS的解决方案。

<小时/>

回答:

我尝试将滚动处理程序添加到窗口,但我发现只有当我有 two scrolls 时才处理事件只有在这种情况下,它们的右侧才会移动。如果我有一个滚动条来滚动页面,就像大文本的情况一样 - 没有任何调用

最佳答案

构建 SuggestBox 时,您可以提供自己的 SuggestOracleTextBoxSuggestionDisplayDefaultSuggestionDisplay 可用于隐藏建议列表。您可以在 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();
<小时/>

编辑:

如果不是整个窗口滚动,而是只滚动某些面板的内容,您可以向面板添加一个 ScrollHandler :

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

关于java - gwt suggestbox 不会隐藏在页面滚动上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39747228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com