【发布时间】:2020-12-29 21:35:38
【问题描述】:
我的 CodenameOne 应用有一个带有特殊尺寸限制的主/细节布局。 还有一个“加号”按钮,允许创建新项目。
在主窗体中:
FloatingActionButton fab=FloatingActionButton.createFAB(FontImage.MATERIAL_ADD);
...
if(isTablet() && !isPortrait())
{
mainForm.add(tl.createConstraint().heightPercentage(100).widthPercentage((int)(leftContainerRatio*100)),masterContainer)
.add( mainEditingContainer);
fab.bindFabToContainer(masterContainer); //error here
} else {
mainForm.add(masterContainer);
fab.bindFabToContainer(masterContainer);
}
运行时我得到:
java.lang.IllegalArgumentException: Component is already contained in Container: Container[x=0 y=20 width=2048 height=1514 name=null, layout = TableLayout, scrollableX = false, scrollableY = false, components = [masterContainer, Container]]
at com.codename1.ui.Container.insertComponentAtImpl(Container.java:927)
at com.codename1.ui.Container.insertComponentAt(Container.java:918)
at com.codename1.ui.Container.addComponent(Container.java:840)
at com.codename1.ui.Container.encloseIn(Container.java:250)
at com.codename1.ui.layouts.LayeredLayout.encloseIn(LayeredLayout.java:1099)
at com.codename1.components.FloatingActionButton.bindFabToContainer(FloatingActionButton.java:314)
at com.codename1.components.FloatingActionButton.bindFabToContainer(FloatingActionButton.java:286)
at com.myapp.app.MyApp.start(MyApp.java:186)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.codename1.impl.javase.Executor$3$1.run(Executor.java:258)
at com.codename1.ui.Display.processSerialCalls(Display.java:1331)
at com.codename1.ui.Display.mainEDTLoop(Display.java:1125)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
但没有在任何地方添加或绑定 FAB,其他地方显示在代码 sn-p 中。
如果绑定方法被移除,则不会出现任何按钮。
(应用程序正在模拟器中运行)
有什么问题?
【问题讨论】:
标签: java codenameone floating-action-button master-detail