Sorry for the late reply, I am under severe jet-lag
I don’t have my exact code in front, but I use the source as a walkthrough. The code is same for TS and JS it seems. (Line numbers might be different in .js).

If I choose to try it this way, is there a way to ignore the file change whenever I do an update? (should I?) or do i just need to remember to make the change each time?

Im not sure if you saw my post above, I sort of made my layout work, but running into a problem with the FlexboxLayout where if there’s not enough content, the bottom bar is too large, and if there’s too much content, the bottom bar is too skinny. I tried setting some heights, but the flexGrow=“1” takes over. Not sure what to do for that.

No problem.
Yeah, you should apply the change after each upgrade, so that you don’t miss out on potential fixes in other places. But otherwise you could just backup the android.js file and put it back in. I will take a look and see if we can get a plugin out of this.

Regarding the usage of your Flexbox solution, it all depends on how you use it. Your custom made tabbar (button-bar) is of type FlexboxLayout, the parent container should not be. I prefer a GridLayout around the content and the buttons. Where you set row=0 to * (star) and row=1 to either auto or a static height value. I think if you use auto and a FlexboxLayout, then it could show symptoms like your describe, since there is nothing that tells the layout containers what the height is (it’s flexible)

The problem is that in typescript we still have to “import” the types we are using and we cannot do conditional import, that’s why I had to add the definition and an empty implementation for iOS, I’m not saying you should support iOS (it has already support for native tabs), I’m just saying you should add a definition file for iOS and then an empty implementation so at least it will run in iOS without complaining about the import.

The way you suggested doesn’t work with typescript (and yes I’m using 2 templates but the component code is shared so I cannot import the specific types and run it on iOS)…this one will complain that there is no module on iOS:

Ok, I understand the issue, I had the same problem when I wanted to implement the plugin in one of my project. To solve this issue I created two different (not only templates) component.ts, one for iOS and one for Android and you actually conditionally require the right component in your module.

But you are also right, it could easily be avoided by implementing an empty module for iOS. But I’m not sure it’s the best practice for consistency since the plugin is not supported for iOS you shouldn’t import the library for your iOS app. From my point of view it’s better to conditionnaly use the plugin for consistency. Like this in your final build you won’t have a useless library in your release app.

I would be glad to here the opinion of other, if someone prove me wrong I will implement it