【发布时间】:2021-11-18 07:36:45
【问题描述】:
这个示例项目(下载了“bare-bones”项目)显示了一个不滚动的 BrowserComponent。
顺便说一句,基本项目(由他们的在线模板生成器创建)不起作用(!),因为缺少一个文件。我将该文件从我的另一个 CN1 项目(实际上来自这个问题的那个)复制到示例项目中,现在它可以编译了。
public class MyApp extends Lifecycle
{
@Override
public void runApp()
{
Form hi = new Form("Hi World", new BorderLayout());
//Form hi = new Form("Hi World", new BoxLayout.y()); alternate version
hi.setScrollable(false); //you can also comment this one
hi.setScrollableY(false);//you can also comment this one
hi.setScrollableX(false);//you can also comment this one
Button helloButton = new Button("Hello World");
hi.add(BorderLayout.NORTH,helloButton);
//hi.add(helloButton); alternate version
helloButton.addActionListener(e -> hello());
hi.getToolbar().addMaterialCommandToSideMenu("Hello Command",
FontImage.MATERIAL_CHECK, 4, e -> hello());
Container mainContainer=new Container(new BorderLayout());
BrowserComponent bc=new BrowserComponent();
bc.setScrollable(true);
bc.setScrollableY(true);
bc.setPage("<HTML><BODY><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P><P>TEXT</P></BODY></HTML>",""); // it's a long page so it can be scolled
//mainContainer.add(BorderLayout.CENTER,bc); alternate version
//hi.add(BorderLayout.CENTER,mainContainer); alternate version
hi.add(BorderLayout.CENTER,bc);
hi.show();
}
private void hello() {
Dialog.show("Hello Codename One", "Welcome to Codename One", "OK", null);
}
}
我是否遗漏了一些重要的东西,让用户可以通过触摸滚动?
我编译了几个不同的版本,包括在表单或容器内居中 BC 等等(见注释行)。
我在 CN1 模拟器和真正的 Android 设备(服务器构建)上对其进行了测试,它不可滚动(而是选择了文本)。我听从了他们的所有建议,因此 BC 以 BorderLayout 为中心,并且表单设置为不可滚动。
我记得我真正的应用程序在某个时候可以运行。现在我测试了我的应用程序,发现它不起作用,所以我制作了这个示例应用程序。也许我错了。
这不是初学者的问题,而是关于 BC 有问题的问题。 我知道这样的组件在许多系统上都是不稳定的,例如像 SwiftUI 这样的重要系统,但是 当然是在CN1上。
在 CN1 模拟器上滚动条总是出现,所以我可以测试它,BC 可以通过使用滚动条滚动。但是鼠标事件没有被正确处理。
在我的实际项目中,我有很多解决方法来处理 BC 内的鼠标事件,但这里的示例项目是一个非常简单的项目,只有 BC。
BC 被最近的一些更新破坏以修复其他问题的可能性不大。
那么现在的解决办法是什么?
【问题讨论】:
标签: java layout webview scroll codenameone