Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codenameone 如何控制溢出菜单的宽度?_Codenameone - Fatal编程技术网

Codenameone 如何控制溢出菜单的宽度?

Codenameone 如何控制溢出菜单的宽度?,codenameone,Codenameone,溢出菜单很窄。对于一个超过两英寸的屏幕来说,它甚至没有一英寸宽。我想它会尝试调整自己的大小,以适应菜单命令的文本和图标,但它似乎是一个固定的大小,我需要它更宽一点。有没有办法强迫它调整菜单的大小?或者有没有办法设置其大小?除了将填充和字体大小设置为命令样式外,溢出菜单中还有另一个隐藏行为 溢出菜单建立在列表之上,这是基于遗留代码的错误决策。因此,列表宽度的调整通常通过渲染原型对象完成,除非继承工具栏,否则无法访问该对象 此代码: Form f = new Form("AAAA", BoxLayo

溢出菜单很窄。对于一个超过两英寸的屏幕来说,它甚至没有一英寸宽。我想它会尝试调整自己的大小,以适应菜单命令的文本和图标,但它似乎是一个固定的大小,我需要它更宽一点。有没有办法强迫它调整菜单的大小?或者有没有办法设置其大小?

除了将填充和字体大小设置为命令样式外,溢出菜单中还有另一个隐藏行为

溢出菜单建立在
列表
之上,这是基于遗留代码的错误决策。因此,列表宽度的调整通常通过渲染原型对象完成,除非继承
工具栏
,否则无法访问该对象

此代码:

Form f = new Form("AAAA", BoxLayout.y()); 

f.getToolbar().addMaterialCommandToOverflowMenu("Hi", FontImage.MATERIAL_3D_ROTATION, e -> Log.p("a"));
f.getToolbar().addMaterialCommandToOverflowMenu("Hi a", FontImage.MATERIAL_3D_ROTATION, e -> Log.p("aaa"));
f.getToolbar().addMaterialCommandToOverflowMenu("Hi aaa", FontImage.MATERIAL_3D_ROTATION, e -> Log.p("aaaaa"));
f.getToolbar().addMaterialCommandToOverflowMenu("Hi aaaaa", FontImage.MATERIAL_3D_ROTATION, e -> Log.p("aaaaaaa"));
f.getToolbar().addMaterialCommandToOverflowMenu("Hi aaaaaaa", FontImage.MATERIAL_3D_ROTATION, e -> Log.p("aaaaaaaaa"));
f.getToolbar().addMaterialCommandToOverflowMenu("Hi aaaaaaaaa", FontImage.MATERIAL_3D_ROTATION, e -> Log.p("aaaaaaaaaaa"));
f.getToolbar().addMaterialCommandToOverflowMenu("Hi aaaaaaaaaaa", FontImage.MATERIAL_3D_ROTATION, e -> Log.p("aaaaaaaaaaaaa"));

f.show();     
产生以下结果:

请注意,菜单将一直增长,直到第5个元素停止。这是因为在没有渲染原型的情况下,列表默认只检查前5个元素的首选大小

正确的解决方案是扔掉列表,使用一个合适的容器,这将改进
工具栏中的许多其他内容,但这需要一些工作