высота списка железа не обновляется при изменении высоты контента

У меня есть этот полимерный элемент, в котором показан список элементов. Я заполняю список iron-list. Каждый элемент списка содержит paper-card, который скрывает некоторые другие пользовательские элементы, когда я нажимаю кнопку, отображается соответствующее представление. Все до этой части работает нормально.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я показываю пользовательский элемент или скрываю элемент, высота элемента списка железа не обновляется. Когда я показываю элемент, он будет отображаться за другими представлениями, а когда я скрываю, появляется пустое пространство с высотой, равной высоте отображаемого представления.

ниже код для списка,

<div on-click="clicked" id="feedlist">
<iron-list items="{{feedList}}" as="item">
    <template>
        <card-element field="{{item.id}}" feed-id="{{item.id}}" feed-number="{{item.id}}" feed-title="{{item.title}}" feed-name="{{item.name}}" date="{{item.timeStamp}}"></card-element>
    </template>
 </iron-list>

and code for this card-element is as given below

 <div class="content" id="content">
                <text-input id="note" type="1" note="{{response.note}}" feed-id="[[feedId]]"></text-input>
                <data-viewer id="dataViewer" plugin-data="{{response.data}}" feed-id="[[feedId]]" default-view="gridView" parent="feed"></data-viewer>
                <comment-view id="comment" comments="{{response.comment}}" feed-id="[[feedId]]"></comment-view>
            </div>

я скрываю и показываю, ввод текста, просмотр данных и просмотр комментариев или все сразу в зависимости от нажатия кнопки.

Ниже приведен код для переключения средства просмотра данных,

toggleDataView: function (event) {
        event.stopPropagation();
        if (this.isFeed) {
            this.isDataView = false;
            this.isFeed = false;
        }
        this.isDataView = !this.isDataView;
        if (this.isDataView) {
            this.isComment = false;
            this.isNote = false;
            this.$.note.hide();
            this.$.comment.hide();
            this.$.dataViewer.show();
            this._showDragView();
        } else {
            this.$.dataViewer.hide();
            this._hideDragView();
        }
    },

person Vishnu    schedule 18.02.2016    source источник
comment
Это исправляется при изменении размера окна браузера?   -  person Günter Zöchbauer    schedule 18.02.2016
comment
Да, когда я изменяю размер окна, оно обновляется   -  person Vishnu    schedule 18.02.2016


Ответы (1)


Я думаю, вам нужно позвонить updateSizeForItem(item) https://elements.polymer-project.org/elements/iron-list#method-updateSizeForItem после обновления элемента (просмотр, скрытие, ...)

person Günter Zöchbauer    schedule 18.02.2016
comment
Последняя идея. Вызовите notifyResize в самом списке железа. - person Günter Zöchbauer; 18.02.2016