如何SuggestBox在PopupPanel保持时设置最大高度的情况下自动滚动GWT SuggestBox?目前,当用户按下键盘向上键和向下键样式时,对建议项目进行更改并按Enter键将选择列表中当前选定的项目.
当项目位于低于最大高度时,滚动条不会滚动.我尝试扩展SuggestBox和内部类DefaultSuggestionDisplay来覆盖moveSelectionDown()和moveSelectionUp()显式调用popup.setScrollTop().
为了做到这一点,我需要访问当前所选的绝对顶部,MenuItem因此需要访问SuggestionMenu也是一个内部类的SuggestBox,它是私有的并且在DefaultSuggestionDisplay没有getter的情况下声明为私有成员.由于GWT是一个JavaScript,我们不能使用反射来访问它....有没有人有这个问题的解决方法?
谢谢.
好吧,我终于找到了解决方案。我必须基于 GWT SuggestBox 实现创建自己的建议框。但在自定义实现中请遵循以下步骤: -将 ScrollPanel 放置到 PopupPanel,然后将 MenuBar 放置到 ScrollPanel -在新的内部 SuggestionDisplat 实现的 moveSelectionUp() 和 moveSelectionDown() 中添加以下代码:
panel.ensureVisible( menu.getSelectedItem( ) );
Run Code Online (Sandbox Code Playgroud)
这是无法通过扩展 SuggestBox 来实现的,因为除非将受保护的 getSelectionItem() 方法重写为公共方法,否则我们将无法访问选定的 MenuItem。
最后添加CSS:
max-height: 250px;
Run Code Online (Sandbox Code Playgroud)
到显示实现中的 popupPanel。