Java 如何修改工具栏';s返回命令按钮(返回箭头)在代号1中?
我正在尝试自定义使用Codename One中的工具栏时在表单之间切换所产生的返回箭头。我知道我必须以某种方式更改UIID,但我不确定要修改哪个组件。我尝试过在主题编辑器中更改BackCommand和Toolbar,但没有任何更改。这里没有必要提供任何代码,因为这是主题编辑器的一个问题 编辑:我附上了一张图片,显示在我的问题不清楚的情况下,返回箭头当前的外观(见左上角)Java 如何修改工具栏';s返回命令按钮(返回箭头)在代号1中?,java,codenameone,Java,Codenameone,我正在尝试自定义使用Codename One中的工具栏时在表单之间切换所产生的返回箭头。我知道我必须以某种方式更改UIID,但我不确定要修改哪个组件。我尝试过在主题编辑器中更改BackCommand和Toolbar,但没有任何更改。这里没有必要提供任何代码,因为这是主题编辑器的一个问题 编辑:我附上了一张图片,显示在我的问题不清楚的情况下,返回箭头当前的外观(见左上角) 我猜您只是想设置颜色?有多种方法可以定制,而且它们都更加复杂 back命令只是BackCommandUIID,您可以通过des
我猜您只是想设置颜色?有多种方法可以定制,而且它们都更加复杂
back命令只是
BackCommand
UIID,您可以通过designer/CSS自定义它。同样,您也可以自定义标题命令的颜色。您说,提供代码没有意义,因为这将是主题编辑器的问题。正如谢伊指出的那样,似乎没有这么简单的出路。如果您对编码解决方案感兴趣,因为您希望单独设置“后退”按钮的样式,下面是我的方法(使用代码):
提供了有关如何导入字体图像的指南 这里有一个实用方法,您不必每次都编写整个代码。 您必须自定义
BackButton
UIID。这样,您还可以显示IOS/Android风格的图标
public void setBackCommand(Form currentForm, Runnable r)
{
Command back = new Command("Back") {
@Override
public void actionPerformed(ActionEvent evt) {
r.run();
}
};
currentForm.getToolbar().setBackCommand(back);
Button buttonToolbar = currentForm.getToolbar().findCommandComponent(back);
buttonToolbar.setUIID("BackButton");
if(getPlatformName().equals("ios"))
FontImage.setMaterialIcon(buttonToolbar, FontImage.MATERIAL_ARROW_BACK_IOS);
else
FontImage.setMaterialIcon(buttonToolbar, FontImage.MATERIAL_ARROW_BACK);
}
你可以这样称呼它:
setBackCommand(currentForm, () -> {previousForm.showBack();});
您可以更改Runnable
arg,以便在每次调用时包含不同的代码
setBackCommand(currentForm, () -> {previousForm.showBack();});