I do have a home page where there's a dock layout and the dock layout has a docked tab navigation at the bottom of the screen and the rest of the screen has pages that the tab navigates to. Inside the dock layout I have a nested child flexbox which is docked at the bottom as the bottom navigation bar and page-router-outlet. I have placed a tap event inside the nested flexbox for navigating to respective pages but the tap event doesn't happen at the flexbox level. When I place the tap event on the dock layout, I am getting the event. This problem only occurs in iOS but everything works perfectly in Android.
This is my code:
<DockLayout stretchLastChild="false"
(tap)="parentTap($event)"
class="dock-layout">
<FlexboxLayout (tap)="childTap($event)"
dock="bottom" class="bottom-nav">
<FlexboxLayout height="75"
(tap)="navigate(item)"
*ngFor="let item of bottomNavList;let i=index"
[class.active-tab]="currentTab==item.label"
class="tab-item">
<Label text="icon" textWrap="true"></Label>
<Label text="text" textWrap="true"></Label>
</FlexboxLayout>
</FlexboxLayout>
<page-router-outlet></page-router-outlet></DockLayout>
Only parentTap event works and not childTap event and the navigate function in iOS. Whereas in Android everything works fine no issues at all.
https://github.com/NativeScript/NativeScript/issues/3006 - I tried referring to this code but doesn't work.
While the same works with GridLayout and not DockLayout in iOS.
Try setting a higher
z-indexfor theFlexboxLayoutwithchildTap:CSS:
html:
or try stretching the FlexboxLayout to the full height and width of the wrapping FlexboxLayout: