0

我在折叠 ControlP5 DropdownList 对象时遇到问题。

我选择了我想要的项目,箭头指向上方,好像它要折叠一样......但所有的选择都还在!做出选择后它永远不会折叠。

我查看了 isOpen() 函数,它告诉我列表已关闭。我还探索了 isCollapse() 函数,它告诉我列表已经折叠......

这是我实例化对象的代码:

    SimilarityChoices = P5Controller.addDropdownList("SimChoices").setPosition((float)(width * .7), 450);
    SimilarityChoices.addItem("Euclidian", 1);
    SimilarityChoices.addItem("Manhattan", 2);
    SimilarityChoices.setValue(2);      
    this.SimilarityChoices.enableCollapse();
    this.SimilarityChoices.setItemHeight(20);
    this.SimilarityChoices.actAsPulldownMenu(true);

如果有人能给我一个关于如何完成这项工作的提示,我将非常感激。(我也很乐意提供更多信息)

4

1 回答 1

1

您会注意到下拉列表示例草图包括以下内容:

void draw() {
  background(128);
}

它会在列表展开时覆盖先前渲染的像素。我用你的代码写了一个草图来更清楚地说明差异:

import controlP5.*;

ControlP5 P5Controller;
DropdownList SimilarityChoices;

void setup() {
  size(500, 500);
  P5Controller = new ControlP5(this);
  SimilarityChoices = P5Controller.addDropdownList("SimChoices").setPosition((float)(width * .7), 450);
  SimilarityChoices.addItem("Euclidian", 1);
  SimilarityChoices.addItem("Manhattan", 2);
  SimilarityChoices.setValue(2);      
  this.SimilarityChoices.enableCollapse();
  this.SimilarityChoices.setItemHeight(20);
  this.SimilarityChoices.actAsPulldownMenu(true);
}
void draw() {
  //background(128);
}

取消注释该行使background(128);其行为符合预期。我希望这会有所帮助!请注意,您编码的某些设置可能不再需要。

于 2014-01-13T19:27:07.443 回答