当前位置: 首页 > 知识库问答 >
问题:

代号为One BoxLayout滚动

段干昊然
2023-03-14

我有一个在X轴上有BoxLayout的容器,里面有图标的按钮。

问题是,不适合容器的列表项正在被裁剪,并且在应该绘制时没有绘制。此外,当手指位于未绘制的项上方时,容器是不可滚动的。

这是名单

    final Container cont_nations = new Container(new BoxLayout(BoxLayout.X_AXIS));

    int buttons_width = dim_nation_man.getWidth() * 5;
    cont_nations.setPreferredW(buttons_width + 50);
    cont_nations.setPreferredH(dim_nation_man.getHeight());
    cont_nations.setX(Main.screenWidthHalf - buttons_width / 2);
    cont_nations.setY(choiseImage.getY() + dim_choise.getHeight() + Main.cellSize * 0);
    cont_nations.setScrollSize(new Dimension(man_size * imgName_nations.length, man_size));
    cont_nations.setScrollable(true);
    //cont_nations.setScrollVisible(false);

    addComponent(cont_nations);

    for (int i = 0; i < img_nations.length; i++) {
        final Button btn_nation = new Button(img_nations[i][0].image);

        cont_nations.addComponent(btn_nation);
    }

首先,我需要这个滚动位于特定的位置并具有特定的大小,所以我使用ControllateLayout作为容器的父级。这就是为什么我使用setX()、setY()和setPreferredW()和setPreferredH()。

共有1个答案

颜昕
2023-03-14

您只想在X轴上滚动吗?

删除所有这些代码:

int buttons_width = dim_nation_man.getWidth() * 5;
cont_nations.setPreferredW(buttons_width + 50);
cont_nations.setPreferredH(dim_nation_man.getHeight());
cont_nations.setX(Main.screenWidthHalf - buttons_width / 2);
cont_nations.setY(choiseImage.getY() + dim_choise.getHeight() + Main.cellSize * 0);
cont_nations.setScrollSize(new Dimension(man_size * imgName_nations.length, man_size));
cont_nations.setScrollable(true);

按钮的大小将基于他们的图标大小,所以你不需要触摸它。设置位置不会起作用,因为布局管理器会决定这一点。

cont_nations.setScrollableX(true);
    Form hi = new Form("Side Scroll");
    hi.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
    int[] colors = { 0xffff0000, 0xff00ff00, 0xff0000ff, 0xff000000 };
    Container side = new Container(new BoxLayout(BoxLayout.X_AXIS));
    side.setScrollableX(true);
    hi.addComponent(side);
    for(int iter = 0 ; iter < 30 ; iter++) {
        side.addComponent(new Button(Image.createImage(100, 50, colors[iter % colors.length])));
    }
    hi.show();
 类似资料:
  • 我需要的主要功能(这与标准的水平滚动不同)是,只有当手指移动超过给定的水平空间(我们可以假设20mm)时,才能够滚动容器,否则容器将恢复到滚动之前的位置(就像Instagram所做的那样)。 此外,如果滚动被“接受”(这意味着超过20mm),容器将自动水平滚动,以使内部组件在水平空间的左侧完全可见。 示例:

  • 我正试图使用 SetBrowserNavigationCallback 然而,这只起作用一次。如果我再次点击加载,什么也不会发生... 这是预期的行为吗? 如果是,从javascript中多次调用java函数的最佳方法是什么?

  • 本文向大家介绍js手机号批量滚动抽奖实现代码,包括了js手机号批量滚动抽奖实现代码的使用技巧和注意事项,需要的朋友参考一下 我们平时在看一些选秀节目或一些歌唱类比赛节目时经常会看到在现场的大屏幕上会有观众的手机号在滚动来选出谁是幸运观众或谁中了什么奖项,这些手机号都是现场观众或场外观众在给选手投票时产生的,当主持人一声开始令下,大屏幕上的手机号就会快速随机滚动,当主持人一声停令下,大屏幕上会随机出

  • 我的Codename One应用程序的特点是一个表单,有3个包含文本的SpanLabels和一个LayeredLayout中的容器,其中有一个图像和一个覆盖。 其结果如下: 这是不令人满意的,因为图像(出现在中心,应该是CN1图标)不是缩放而是剪切,因为它不可能向下滚动。 我试图强制窗体是可滚动的(),但没有成功。

  • 又一天,又一只虫子。。。我有三个AutoCompleteTextFields,其中过滤器被覆盖,以从我的REST服务中获得完整性,但我的大问题是,这些文本的建议弹出窗口是点击通过的。。。因此,当我已经完成其中一个,任何点击另一个的建议弹出窗口都会触发基础ACTF,它已经被填充,因此显示它自己的弹出窗口,使得无法从其他ACTF建议弹出窗口中选择项目。 这里的两个截图显示了这种情况,ACTF是文本字段

  • 我的CN1应用程序在这里生成文件filesystemstorage.getinstance().getapphomePath()。我可以正确地读/写那里的文件。 此文件夹名类似于:- 我如何保证这部分保持不变?谢谢你的帮助。