在BlackBerry 10上覆盖ActivityIndi​​cator的正确方法是什么?

时间:2015-08-01 16:39:18

标签: qt qml blackberry-10 qtquick2 blackberry-cascades

在我的BB10应用程序中,我希望在当前屏幕的中央覆盖ActivityIndicator以指示何时发生某些事情(例如"正在加载")。

我目前的解决方案是将这样的指标嵌入自定义透明对话框的中心,如下所示:

import bb.cascades 1.4

Dialog {
    id: activityDialog
    objectName: "activityDialog"
    content: Container {
        id: activityDialogContainer

        horizontalAlignment: HorizontalAlignment.Center
        verticalAlignment: VerticalAlignment.Center

        // fully transparent background!
        background: Color.create(0, 0, 0, 0)
        layout: StackLayout {

        }
        ActivityIndicator {
           id: theIndicator
           preferredWidth: 500               
           preferredHeight: 500           
        } 
        Label {
            id: activityLabel;
            objectName: "activityLabel";
            text: ""
            horizontalAlignment: HorizontalAlignment.Center
            verticalAlignment: VerticalAlignment.Center
        }                   
    }

    onOpened: {
        theIndicator.start();
    }

    onClosed: {
        theIndicator.stop();
    }
}

当我想显示指示符时,我可以简单地打开对话框。

问题是该对话框会阻止与基础Page / NavigationPane控件的任何互动。我理解为什么。该对话框占据整个屏幕,虽然透明仍然基本上隐藏了底层窗格的任何UI。

如何在屏幕中央覆盖ActivityIndicator,而不会阻止与底层面板控件的互动?

1 个答案:

答案 0 :(得分:1)

我现在意识到我只需要在我的主DockLayoutContainer周围创建一个ActivityIndicator