问题描述
在拆分面板中是否可以有两个两个NavContainers ?
我尝试如下图所示,但子视图中没有显示任何内容,只显示了拆分面板,并且两侧都是空的。错误日志未显示任何内容。
当我将第一个NavContainer作为第一个元素放在page元素的content标签内时,将渲染第一个容器的视图。 (请参见视图定义中的注释行)
<mvc:View
controllerName="my.controller.parent"
xmlns="sap.m"
..
id="splittedContainers" xmlns:m="sap.m">
<Page id="myPage" class="sapUiSizeCompact sapUiTinyMargin" title="myTitle">
<!-- Putting the NavContainer here seems to work -->**
<content class="sapUiSizeCompact sapUiTinyMargin">
<Panel class="sapUiSizeCompact sapUiTinyMargin">
<content>
<l:Splitter orientation="Horizontal">
<l:contentAreas>
<Panel width="100%">
<layoutData>
<l:SplitterLayoutData size="auto" />
</layoutData>
<NavContainer id="childNav1">
<pages>
</pages>
</NavContainer>
</Panel>
<Panel>
<layoutData>
<l:SplitterLayoutData size="300px" />
</layoutData>
<NavContainer id="childNav2">
<pages>
</pages>
</NavContainer>
</Panel>
</l:contentAreas>
</l:Splitter>
</content>
</Panel>
</content>
</Page>
</mvc:View>
manifest.json:
..
"routes": {
"rBoth": {
"pattern": "both","target": "parentTarget"
},"rChild1": {
"pattern": "both/first","target": "tChild1"
},"rChild2": {
"pattern": "both/second","target": "tChild2"
}
..
..
"targets": {
"parentTarget": {
"viewPath": "my.view","viewName": "SplitParentView","parent": "firstLvlTarget","controlId": "pageContainer","controlAggregation": "pages","transition": "flip","viewLevel": 2
},"tChild1": {
"viewPath": "my.view.childs","viewName": "ChildView1","parent": "parentTarget","controlId": "childNav1","viewLevel": 3
},"tChild2": {
"viewPath": "my.view.childs","viewName": "ChildView2","controlId": "childNav2",..
解决方法
您要通过这个实现什么? 大多数屏幕比高屏幕更宽,因此FlexibleColumnLayout在大多数情况下会有所帮助。
NavContainer具有页面聚合。
这些类型可以是sap.m.Page,sap.ui.core.View,sap.m.Carousel或 具有全屏/页面语义的任何其他控件。”
我认为面板不适用于此类控件。
如果只想水平分割,则可以将ObjectPage与Sections and Subsections
一起使用