ios - 与 RadSideDrawer 一起使用时,NativeScript page-router-outlet 在 iOS 上总是占据 100% 的高度
问题描述
在 NativeScript 中将 RadSideDrawer 与 page-router-outlet 一起使用时,似乎无法在 iOS 上不让 page-router-outlet 填充 100% 的高度。在 Android 上,它运行良好。我遇到这个问题的原因是因为我试图在我的路由器插座下方添加一个 BottomNavigationBar。下图显示了 iOS 和 Android 上的行为:
这是我的代码:
<RadSideDrawer>
<FlexboxLayout tkDrawerContent>
<Button text="Test"></Button>
</FlexboxLayout>
<GridLayout class="main-grid" tkMainContent rows="*, auto">
<StackLayout row="0">
<page-router-outlet></page-router-outlet>
</StackLayout>
<BottomNavigationBar activeColor="white" inactiveColor="gray" backgroundColor="black" row="1">
<BottomNavigationTab title="First"></BottomNavigationTab>
<BottomNavigationTab title="Second"></BottomNavigationTab>
<BottomNavigationTab title="Third"></BottomNavigationTab>
</BottomNavigationBar>
</GridLayout>
</RadSideDrawer>
如果我删除 page-router-outlet 并将任何东西放在它的位置,它将在 iOS 和 Android 上正常运行。此外,如果我离开 page-router-outlet 并删除 RadSideDrawer,它也可以正常工作。
有什么建议么?谢谢!
编辑:似乎这个问题只发生在有两个嵌套的页面路由器出口时,如这个示例游乐场: https ://play.nativescript.org/?template=play-ng&id=Z2a5Z7
也许页面路由器插座不应该嵌套呢?现在我的 app.component 中有一个 page-router-outlet,它可以延迟加载并在 login.component 和我的主应用 pages.component 之间切换。pages.component 包含 RadSideDrawer 和另一个 page-router-outlet。我这样做是为了延迟加载我的授权页面和常规应用内容页面。这是错的吗?
解决方案
这似乎是 RadSideDrawer 插件(v8.0.0)的问题,该插件不是开源的,所以最好的方法是在nativescript-ui-feedback中提出问题,我看到你已经这样做了 - #1362。
我有一个解决方法,似乎可以解决我的问题。
主要组件
constructor(page: Page) {
page.once(Page.navigatedToEvent, () => {
page.frame.requestLayout();
});
}
页面加载后请求重新布局。
推荐阅读
- java - 无法一次请求多个危险权限
- python-3.x - 在一个元组中,为什么 x[0] 不等于 x[:1]?对于元组 x = (1, 2, (3, 'John', 4), 'Hi')
- firebase - 在 iOS 模拟器中收到 Firebase FCM 通知,但在颤振应用程序中的真实 iOS 设备上作为 GCM(?)
- excel - 根据列中的主题和单元格值检索电子邮件正文内容
- javascript - 这个“scrollTop”在 Firefox 中不能很好地在 chrome 中运行,我该如何更改它?
- java - 需要一些帮助来使用 java 代码提取 ZIP 文件夹,并且该 ZIP 文件包含在另一个 zip 文件、jar 文件和文件夹中
- reactjs - React Router:测试一个组件,该组件在表单提交时以编程方式推送到 react-router 历史记录
- python - Pandas:在 DataFrame 问题中选择列 - 例如 row[1]['Column']
- javascript - 如何从列中提取单个数据并使用它来命名文档?
- python - 导入使用 Boost.Python 制作的模块时出错