使用SwipeBacksupport刷卡表单将整个屏幕变成白色

问题描述:

  1. 在刷表单时,屏幕的左侧部分只是白色,直到刷完为止,此时最后一次绘制“返回”表单。这是设计吗?我预计“回归”形式要么逐渐显现,要么从左侧滑入。使用SwipeBacksupport刷卡表单将整个屏幕变成白色

  2. 在iOS和Android上,表格被滑动也似乎变白,因此整个屏幕都是白色的,直到滑动结束。然而,模拟器并非如此,在这种情况下,您可以直到完全刷出表单才能看到表单。

代码来重现行为:

Form redForm = new Form("Red Form"); 
    redForm.getAllStyles().setBgColor(0xff0000); 
    Button btnToBlueForm = new Button("Go to blue form"); 
    redForm.add(btnToBlueForm); 

    Form blueForm = new Form("Blue Form"); 
    blueForm.getAllStyles().setBgColor(0x0000ff); 

    LazyValue<Form> lazyRedForm = (Object... args) -> redForm; 
    SwipeBackSupport.bindBack(blueForm, lazyRedForm); 

    btnToBlueForm.addActionListener((ActionListener<ActionEvent>) (ActionEvent evt) -> { 
     blueForm.show(); 
     SwipeBackSupport.bindBack(blueForm, lazyRedForm); 
    }); 

    redForm.show(); 

按下红色形式的按钮。蓝色表单现在出现。向后滑动并观察效果。

这是因为转换中的SlideFade模式。如果将它切换到幻灯片,它应该像背景一样按预期工作。这是你的代码的一个版本的作品,你会通过应用样式到内容窗格中预计:

Form redForm = new Form("Red Form"); 
redForm.getContentPane().getAllStyles().setBgColor(0xff0000); 
redForm.getContentPane().getAllStyles().setBgTransparency(255); 

Button btnToBlueForm = new Button("Go to blue form"); 
redForm.add(btnToBlueForm); 

Form blueForm = new Form("Blue Form"); 
blueForm.getContentPane().getAllStyles().setBgColor(0x0000ff); 
blueForm.getContentPane().getAllStyles().setBgTransparency(255); 

LazyValue<Form> lazyRedForm = (Object... args) -> redForm; 
SwipeBackSupport.bindBack(blueForm, lazyRedForm); 

btnToBlueForm.addActionListener((ActionListener<ActionEvent>) (ActionEvent evt) -> { 
    blueForm.show(); 
    SwipeBackSupport.bindBack(blueForm, lazyRedForm); 
}); 

redForm.show(); 

这个工程,而不是原来的代码的原因是,SlideFade是两个独立的转换一个移动/衰落标题,另一个滑动内容窗格。由于内容窗格是透明的,所以背景不会被绘制,因为我们认为它是表单背景。通过设置内容窗格的颜色/不透明度,我们可以在SlideFade将“看到”的图层中获得完全相同的效果。

+0

对不起,但是你的代码没有区别。当我滑动屏幕时,屏幕仍然空白。我仅在Android上进行了测试。 –

+0

我测试过它,它为我工作。这是在模拟器上进行还是仅在设备上进行? –

+0

在模拟器上,至少可以看到表单正在被拖动到白色背景上。在Android和iOS上,屏幕将保持白色,直到拖动结束。我在Windows 10上的NetBeans中工作,并且所讨论的项目基于一个“Hello World”cn1模板,并带有本机模板。屏幕录像链接:iOS:https://drive.google.com/open?id=0B5OJMiVYJnI6QTZEc0hZdVg3c0ozVDF2WU0tUFgyYkc3Zjhn,Windows 10下的模拟器:https://drive.google.com/open?id = 0B5OJMiVYJnI6SnFLd0ZZUzdPMDQ –