2014-01-21 4 views
0

Я разрабатываю мобильное приложение Blackberry 10 с использованием моментальной IDE (родной SDK).Как webview может заполнить всю страницу?

Я пытаюсь добавить в qml-страницу веб-представление, что на его дисплее должно быть отверстие родителя Размеры (ширина и высота) контейнера, как указано в приведенном ниже коде. Но по той причине, которую я не нашел, это не так. У кого-нибудь есть идея?

Page { 
     content: Container { 
      id: mainEntryContainer 
      objectName: "mainEntryContObj" 

      layout: StackLayout { 
       orientation: LayoutOrientation.TopToBottom 
      } 

      background: Color.create("#292929") 

      FastBarHeader { 
       id: headerContainer 
       objectName: "headerContObj" 
      } 

      Container { 
       id: choosedOptionContainer 
       objectName: "choosedOptionContObj" 

       layoutProperties: StackLayoutProperties { 
        spaceQuota: 8 
       } 

       WebView { 
        id: htmlViewerItem 
        objectName: "htmlViewerItemObj" 

        horizontalAlignment: HorizontalAlignment.Fill 
        verticalAlignment: VerticalAlignment.Fill 

        settings.cookiesEnabled: true 
        settings.javaScriptEnabled: true 

        settings.devicePixelRatio: 1.0 
        settings.viewport: { 
         "initial-scale": 1.0 
        } 

        onLoadingChanged: { 
         if (loadRequest.status == WebLoadStatus.Succeeded) { 
          indicatorProgress.progIndicatorLabelValue = "Load finished." 
          visible = true 
          indicatorProgress.visible = false 
         } else if (loadRequest.status == WebLoadStatus.Failed) { 
          indicatorProgress.progIndicatorLabelValue = "Load failed." 
         } 

        } 

        accessibility.name: "web content" 
       } 
      } 

      FastBarFooter { 
      } 

     } 
    } 
+0

Нужна ли вам spacequota? –

+0

ДА !! Мне нужно это, чтобы разделить страницу на 3 части и убедиться, что никто не займет пространство другой части. Фактически, это происходит только тогда, когда это веб-просмотр; Я попытался поместить другие компоненты qml вместо webview, и он отлично работает. Действительно странно !!! –

ответ

1

Я считаю, что вам нужно будет обернуть WebView внутри ScrollView (это позволяет веб-просмотру прокручивать, если необходимо).

Вот как я сделать это:

ScrollView { 
    id: scrollview 

    implicitLayoutAnimationsEnabled: false 
    scrollViewProperties.minContentScale: 1.0 

    WebView { 
     id: webview 
     preferredHeight: Infinity 
     preferredWidth: Infinity 

     // viewport setup 
     settings.viewport: { 
      "width": "device-width", 
      "height": "device-height", 
      "initial-scale": 1.0 
     } 
    } // WebView 

} // ScrollView 
0

Вы можете сделать контейнеры с и высотой WebViews предпочтительного размера с этим в родительском контейнере:

attachedObjects: LayoutUpdateHandler { 
     onLayoutFrameChanged: { 
      <your_webview_id>.preferredWidth = layoutFrame.width; 
      <your_webview_id>.preferredHeight = layoutFrame.height; 
     } 
    } 
Смежные вопросы