我试图用这个聊天框做的是当一个用户发送一条信息时应该自动滚动。但如果用户在查看以前的消息时被向上滚动,则不要自动滚动。
下面我已经尝试过的是,在聊天信息中添加新行时,按住当前y偏移量,滚动到聊天的底部,记录偏移量,然后比较两个偏移量。如果偏移不相同,则滚动回原始位置。
尽管这不起作用,因为maximumheight的值是 32767
哪一个是最大值 SHORT
. 我认为这将是内容的最大高度 panel
.
panel = new Panel();
panelLayout = new CssLayout();
panelLayout.setStyleName("chatlog");
panel.setContent(panelLayout);
addComponent(panel);
panel.setSizeFull();
setExpandRatio(panel, 1);
// add text to panel until scroll bar appears
//...
// Scroll to bottom if position is already at bottom, else keep same scroll position
int currentPosition = panel.getScrollTop();
panel.setScrollTop(Short.MAX_VALUE);
int maximumHeight = panel.getScrollTop();
if (currentPosition == maximumHeight) {
panel.setScrollTop(Short.MAX_VALUE);
} else {
panel.setScrollTop(currentPosition);
}
暂无答案!
目前还没有任何答案,快来回答吧!