Проблема макета каскадов - невозможно прокрутить ListView в DockLayout

Я пытаюсь отобразить ActivityIndicator, пока загружаются данные моего списка. Вот моя страница QML:


Page {
    signal articleClicked(variant article)

    id: root

    titleBar: TitleBar {
        title: qsTr("All feeds")
        visibility: ChromeVisibility.Visible
    } // titleBar

    Container {
        layout: DockLayout {}
        ListView {
            dataModel: _feedModel
            listItemComponents: [
                ListItemComponent {
                    type: "item"

                    FeedListComponent {
                        feed: ListItemData
                    }
                }
            ]
            visible: !_manager.working

            onTriggered: {
                if (indexPath.length > 1) {
                    root.articleClicked(dataModel.data(indexPath));
                }
            }
        } // ListView

        ActivityIndicator {
            verticalAlignment: VerticalAlignment.Fill
            horizontalAlignment: HorizontalAlignment.Fill
            running: _manager.working
        }
    } // Root container
} // Page

Чтобы отобразить ActivityIndicator по центру, я использую DockLayout. Это работает нормально. Однако, когда я переключаю _manager.working на false и отображаю ListView, я не могу прокручивать. Я предполагаю, что он не ограничен размером экрана, поэтому он считает, что прокручивать его не нужно, так как все элементы видны. Но это не так. Я попытался добавить verticalAlignment: VerticalAlignment.Fill и horizontalAlignment: HorizontalAlignment.Fill к ListView без каких-либо изменений. Любой намек на то, как я могу заставить ListView поместиться на экране? Спасибо.


person Marc Plano-Lesay    schedule 26.04.2013    source источник


Ответы (1)


Проблема не в том, что ваш список не будет прокручиваться, а в том, что ActivityIndicator находится поверх списка, предотвращая распространение событий касания в список под ним. Попробуйте добавить

видимо: _manager.working

к индикатору активности

Теперь ваши сенсорные события будут передаваться в список, когда список виден.

person user800183    schedule 26.04.2013