代码之家  ›  专栏  ›  技术社区  ›  Ben J

在BlackBerry 10上覆盖ActivityIndicator的正确方法是什么?

  •  0
  • Ben J  · 技术社区  · 9 年前

    在我的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。

    如何覆盖 活动指示器 在屏幕中央,而不妨碍与底层面板控件的交互?

    1 回复  |  直到 9 年前
        1
  •  1
  •   BaCaRoZzo Indie Dev    9 年前

    我现在意识到我只需要创建一个 DockLayout 围绕我的主线 Container 以及 ActivityIndicator .