【问题标题】:Codename One - addSubmitButtons method of Validator class changes button style代号一 - Validator 类的 addSubmitButtons 方法更改按钮样式
【发布时间】:2019-09-09 12:23:14
【问题描述】:

我正在开发一款适用于 iOS 的 Codename One 应用。 我定义了一个按钮如下:

Button signUpButton = new Button();
signUpButton.getAllStyles().setBorder(Border.createEmpty());
signUpButton.getAllStyles().setBgTransparency(255);
signUpButton.getAllStyles().setBgColor(0x9d1710);
signUpButton.getAllStyles().setFgColor(0x848484);
signUpButton.getAllStyles().setMargin(Component.LEFT, 4);
signUpButton.getAllStyles().setMargin(Component.RIGHT, 4);
signUpButton.setCapsText(true);
signUpButton.setText("Conferma");

之后,我创建了一个验证器,我在其他文本字段中添加了一些约束,然后我将按钮添加到验证器:

validator.addSubmitButtons(signUpButton);

addSubmitButtons 方法更改了我为按钮设置的样式(特别是更改了边距和大小)。

我也试过在addSubmitButtons方法之后给按钮设置我想要的样式,但是好像没有考虑。它发生在模拟器和设备上。

这是在不调用 addSubmitButtons 方法的情况下发生的情况:

这是调用 addSubmitButtons 方法发生的情况:

我该如何解决这个问题?

【问题讨论】:

    标签: ios codenameone


    【解决方案1】:

    当验证未通过时,按钮被设置为禁用,因此禁用的样式会从 4 种样式中挑选出来。

    我在这里猜测,但我假设禁用样式的边距/填充仍然设置为像素而不是原生主题的毫米。如果您明确将所有样式设置为使用毫米,它应该可以工作。

    【讨论】:

    • 在调用 setMargin 方法之前,我添加了这个:signUpButton.getAllStyles().setMarginUnit(Style.UNIT_TYPE_DIPS);不幸的是,它并不能解决问题。这是将毫米设置为单位的正确方法吗?
    • 应该可以,你能隔离一个可重现的独立测试用例吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 2018-02-07
    相关资源
    最近更新 更多