当Vaadin网格的HeightMode为CSS时,如何在向下滚动(非编程)到之前隐藏的行时重新计算列宽
我的应用程序类似于(请在访问此链接后单击登录)。因此,我所有的迷你仪表板项目都围绕着一个高度为300px的抽象组件。其中一项是围绕这个300px高度的抽象组件的网格 我的客户不喜欢看到一根大柱子,并且.v-grid-cell会切断他的手机:当Vaadin网格的HeightMode为CSS时,如何在向下滚动(非编程)到之前隐藏的行时重新计算列宽,vaadin,vaadin7,Vaadin,Vaadin7,我的应用程序类似于(请在访问此链接后单击登录)。因此,我所有的迷你仪表板项目都围绕着一个高度为300px的抽象组件。其中一项是围绕这个300px高度的抽象组件的网格 我的客户不喜欢看到一根大柱子,并且.v-grid-cell会切断他的手机: text-overflow: ellipsis; 因此,在我的瓦丁网格的@PostConstruct中(以及我处理容器的任何地方),我有 以减轻客户的担忧。我告诉他他可以调整列的大小,但他不满意 当我的容器大小很小时,大多数行都是可见的,因此列宽是完美的。
text-overflow: ellipsis;
因此,在我的瓦丁网格的@PostConstruct中(以及我处理容器的任何地方),我有
以减轻客户的担忧。我告诉他他可以调整列的大小,但他不满意
当我的容器大小很小时,大多数行都是可见的,因此列宽是完美的。当我有很多行时,我必须滚动。列宽是基于初始可见行的集合计算的。当我向下滚动时,如果一个新可见的行有一个大的列,那么该列将被切断
我可以通过使用HeightMode.ROW来缓解问题,并将父组件设置为滚动面板,如:
panel.setWidth("100%");
panel.setHeight("310px");
但是我的网格的页脚行有很多操作,所以我不希望我的用户必须滚动到底部才能看到页脚,如果行大小是100。因此,我的网格具有默认值HeightMode->HeightMode.CSS。我喜欢。它始终显示我的HeaderRow和FooterRow,并仅滚动网格中的行部分
我试过什么:
public class ScrollingGrid extends Grid{
List<ScrollingGridScrollListener> listeners = new ArrayList<ScrollingGridScrollListener>();
private void fireSrollEvent() {
for (ScrollingGridScrollListener listener : listeners) {
listener.doGridScroll();
}
}
public void addScrollListener(ScrollingGridScrollListener listener) {
listeners.add(listener);
}
@Override
public void beforeClientResponse(boolean initial) {
super.beforeClientResponse(initial);
fireSrollEvent();
}
在我的网格中:
addScrollListener(this);
及
我在页面加载时看到通知。也许我不应该在网格中重写beforeClientResponse方法。但我不知道覆盖什么方法来实现滚动侦听器
请帮助我找出这个滚动侦听器,或者如果有其他方法可以获得滚动上重新计算的列宽,请让我知道
谢谢你阅读这个很长的问题
版本:7.6.8首先,你所说的大栏是什么意思??你是说宽吗?@AhmadHajjar是的。大宽度。嘿,我知道已经有一段时间了,但你找到解决办法了吗?我们在这里遇到了同样的问题:-/@daPhantom,趁你能逃出瓦丁。如果没有,请尝试升级到8或支付Vaadinsupport@MahendranAyyarsamyKandiar我已经跑得很快了:]首先,你说的大栏是什么意思??你是说宽吗?@AhmadHajjar是的。大宽度。嘿,我知道已经有一段时间了,但你找到解决办法了吗?我们在这里遇到了同样的问题:-/@daPhantom,趁你能逃出瓦丁。如果没有,请尝试升级到8或支付Vaadinsupport@MahendranAyyarsamyKandiar我已经跑得尽可能快了:]
public interface ScrollingGridScrollListener {
public void doGridScroll();
}
addScrollListener(this);
@Override
public void doGridScroll() {
Notification.show("You are scrolling!\nYou can add your own behavior here!");
this.recalculateColumnWidths();
}