qx.ui.core.scroll.AbstractScrollArea дети сжимаются при появлении полосы прокрутки - PullRequest
1 голос
/ 26 апреля 2019

Я создаю пользовательский виджет, расширяя qx.ui.core.scroll.AbstractScrollArea. вот код примерно

qx.Class.define("headers.HeadersList", {
  extend : qx.ui.core.scroll.AbstractScrollArea,
  include: [
    qx.ui.core.MRemoteChildrenHandling
  ],

  construct: function() {
    this.base(arguments);
    this.__container = this._createItemsContainer();
    this.getChildControl("pane").add(this.__container);
    },

  members: {
    __container: null,

    _createItemsContainer: function() {
      const layout = new qx.ui.layout.VBox(10);
      const container = new qx.ui.container.Composite(layout);
      container.setPaddingRight(3);
      return container;
    },

    getChildrenContainer: function() {
      return this.__container;
    }
  }
});

Содержимое добавляется динамически. Проблема в том, что когда появляется полоса прокрутки, ее содержимое уменьшается в ширину, чтобы освободить место для полосы прокрутки.

Я сделал небольшой пример игровой площадки, чтобы показать, что я имею в виду http: // tinyurl.com/yygunxya

Если вы нажмете кнопку «Добавить TextField» более 4 раз, появится полоса прокрутки, и текстовые поля станут уже.

Как ширина TextBoxes может оставаться одинаковой с видимой полосой прокрутки или без нее?

1 Ответ

2 голосов
/ 27 апреля 2019

Если вы не хотите, чтобы текстовое поле не соответствовало доступному пространству, вы должны сначала установить желаемую ширину и запретить усадку:

const textField = new qx.ui.form.TextField(range.toString()).set({
   allowShrinkX: false,
   width: 300
});
...