qx.ui.core.scroll.AbstractScrollArea дочерние элементы сжимаются при появлении полосы прокрутки

Я создаю собственный виджет, расширяя 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

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

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


person voger    schedule 26.04.2019    source источник


Ответы (1)


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

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