Codenameone CN1中滚动期间的绘画抖动
我想在向下滚动Codenameone CN1中滚动期间的绘画抖动,codenameone,Codenameone,我想在向下滚动容器的内容时隐藏一个条。问题是,当酒吧被隐藏或出现时,会有某种程度的不安。我假设存在两个不同绘制过程的冲突(一个链接到滚动,另一个链接到隐藏动画)。我怎样才能避免这种紧张 屏幕录制(模拟器,但也发生在我的智能手机上): 代码片段(隐藏/显示条。它只是一个滚动监听器): 。。。。 articleGallery.addScrollListener(this::onGalleryScroll); .... 私有布尔ignoreEventHandling; 私有void onGaller
容器的内容时隐藏一个条。问题是,当酒吧被隐藏或出现时,会有某种程度的不安。我假设存在两个不同绘制过程的冲突(一个链接到滚动,另一个链接到隐藏动画)。我怎样才能避免这种紧张
屏幕录制(模拟器,但也发生在我的智能手机上):
代码片段(隐藏/显示条。它只是一个滚动监听器
):
。。。。
articleGallery.addScrollListener(this::onGalleryScroll);
....
私有布尔ignoreEventHandling;
私有void onGalleryScroll(intsx、intsy、intosx、intosy){
if(ignoreEventHandling)返回;
如果(sY>有效垂直滚动增量){
如果(!bar.ishiden()){
ignoreEventHandling=true;
bar.setHidden(true);
bar.getParent().animateLayoutAndWait(250);
ignoreEventHandling=false;
log.p(“由于滚动而隐藏横幅”);
}
}否则如果(sY<有效垂直滚动增量){
if(bar.ishiden()){
ignoreEventHandling=true;
bar.setHidden(假);
bar.getParent().animateLayoutAndWait(250);
ignoreEventHandling=false;
log.p(“滚动后显示横幅”);
}
}
当用户主动滚动时,您正在进行动画布局,这与当前逻辑相冲突。中有一个动画标题区域示例
你也可以在这本老教程中看到这一点。要点是你需要使用专门的标题效果。啊,这正是我想要的!只有一个侧节点:当我使用StyleAnimations时,它工作得很好。但我不确定如何将其与隐藏布局动画结合起来。我在academy课程中显示了移动布局,有我在这里详细解释了一些细微差别。
....
articleGallery.addScrollListener(this::onGalleryScroll);
....
private boolean ignoreEventHandling;
private void onGalleryScroll(int sX, int sY, int osX, int osY) {
if(ignoreEventHandling) return;
if(sY > SIGNIFICANT_VERT_SCROLL_DELTA) {
if(!bar.isHidden()) {
ignoreEventHandling = true;
bar.setHidden(true);
bar.getParent().animateLayoutAndWait(250);
ignoreEventHandling = false;
log.p("hiding banner due to scroll");
}
} else if (sY < SIGNIFICANT_VERT_SCROLL_DELTA) {
if(bar.isHidden()) {
ignoreEventHandling = true;
bar.setHidden(false);
bar.getParent().animateLayoutAndWait(250);
ignoreEventHandling = false;
log.p("showing up banner after scroll");
}
}