首页 文章

Codenameone Slider无法设置高度

提问于
浏览
1

我发现很难设置CN1 Slider控件的正确外观和感觉 . 基本上我希望它看起来像主题窗口的CN1默认演示中的那个,并使用Thumb图像以允许用户设置滚动 .

enter image description here

但是当我根据在线示例对其进行编码时,它在模拟器上显得很瘦(如下所示)
enter image description here

...但在实际的iphone设备上根本不显示该行 . 当我开始搞乱这些方法时,例如'getSliderEmptyUnselectedStyle()'然后这会使背景显示并且可以看到进度但它很高,我似乎无法缩小它 .

Container container = new Container(new FlowLayout());
container.getAllStyles().setBgTransparency(255);
container.getAllStyles().setBgColor(0xffffff);
Slider slider = new Slider();
// slider.getAllStyles().setFgColor(0);
// slider.getAllStyles().setMarginLeft(0);
// slider.getSliderEmptyUnselectedStyle().setBgTransparency(255);
// slider.getSliderFullUnselectedStyle().setBgTransparency(255);
// slider.getSliderEmptySelectedStyle().setBgTransparency(255);
// slider.getSliderFullSelectedStyle().setBgTransparency(255);
// slider.getSliderEmptyUnselectedStyle().setBgColor(0xffffff);
// slider.getSliderFullUnselectedStyle().setBgColor(0x42B72A);
// slider.getSliderEmptySelectedStyle().setBgColor(0xffffff);
// slider.getSliderFullSelectedStyle().setBgColor(0x42B72A);
Style sliderStyle = UIManager.getInstance().getComponentStyle("Label");
sliderStyle.setFgColor(0);
slider.setThumbImage(
    FontImage.createMaterial(FontImage.MATERIAL_RADIO_BUTTON_CHECKED, sliderStyle, 4).toImage());

slider.setMinValue(0);
slider.setIncrements(25);
slider.setProgress(entity.getCompletion_pct()); 
slider.setEditable(true); 
container.add(slider);
return container;

我怎样才能得到CN1的例子呢?谢谢

1 回答

  • 1

    示例中的滑块使用9件式边框或3件式边框,两者都具有固定的最小高度/宽度 . 此最小高度应用于滑块的渲染方式 .

    使用填充可以使代码更厚,但是在添加拇指时会产生问题 . 一旦你添加了拇指,它将增加整体尺寸,并使拇指的整个高度具有该背景 . 因此,您需要通过设计师对此进行设计,对于这种特定情况,您需要使用经过仔细测量的图像边框以与拇指图像对齐 .

    另请注意您使用 getAllStyles() 这是错误的 . Slider 是一种特殊情况,使用 SliderSliderFull UIID,因此该组件有效地具有两个UIID和两个独立的 Style 对象集 .

相关问题