为什么 button.getAllStyles().getBgImage() return 为空?

Why does button.getAllStyles().getBgImage() return null?

我的测试用例:

Form hi = new Form("Hi World", BoxLayout.y());
hi.add(new Label("Hello World"));

Button button = new Button(" ");
button.getAllStyles().setBgImage(EncodedImage.createFromImage(Image.createImage(CN.convertToPixels(10), CN.convertToPixels(10), 0xffea5b0c), false));
button.getAllStyles().setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FIT);
hi.add(button);

hi.addShowListener(l -> {
    Image background = button.getAllStyles().getBgImage();
    Log.p("background is null? " + (background == null));
});

hi.show();

它记录:

background is null? true

为什么 button.getAllStyles().getBgImage() return 为空? 这是我的错误还是代号一的错误?

因为 getAllStyles() 的 JavaDoc 说:

Returns a "meta style" that allows setting styles once to all the different Style objects, the getters for this style will be meaningless and will return 0 values

原因很明显。设置所有样式很有意义,您只需遍历样式对象并设置新值。

但是应该得到什么return?如果 unselected 和 select 不同怎么办?

改用getUnselectedStyle()