44            <NavigationButton  text =" Back" android.systemIcon =" ic_menu_back" @tap =" onNavigationButtonTap" 
55        </ActionBar >
66
7-         <MDTabs  selectedIndex = " 1 " 
7+         <MDTabs  ref = " tabs "   unloadOnTabChange = " false " 
88            <!--  The bottom tab UI is created via MDTabStrip (the containier) and MDTabStripItem (for each tab)--> 
99            <MDTabStrip >
1010                <MDTabStripItem >
2929            </MDTabContentItem >
3030            <MDTabContentItem >
3131                <GridLayout  backgroundColor =" green" @loaded =" onLoaded('green')" 
32-                     <Label  text =" Account Page" class =" h2 text-center" Label >
33-                 </GridLayout >
34-             </MDTabContentItem >
35-             <MDTabContentItem >
36-                 <GridLayout  backgroundColor =" yellow" @loaded =" onLoaded('yellow')" 
37-                     <Label  text =" Search Page" class =" h2 text-center" Label >
32+                     <Label  text =" Account Page" class =" h2 text-center" @tap =" addPage" Label >
3833                </GridLayout >
3934            </MDTabContentItem >
35+             
4036        </MDTabs >
4137    </Page >
4238</template >
4339
4440<script  lang="ts">
4541import  *  as  frameModule  from  ' @nativescript/core/ui/frame' 
46- import  { Tabs  } from  ' @nativescript-community/ui-material-tabs' 
47- import  { EventData  } from  ' @nativescript/core' 
42+ import  { TabContentItem ,  Tabs  } from  ' @nativescript-community/ui-material-tabs' 
43+ import  { Color ,  EventData ,  GridLayout ,  Label ,  StackLayout  } from  ' @nativescript/core' 
4844
4945import  Vue  from  ' vue' 
5046
@@ -54,24 +50,46 @@ export default Vue.extend({
5450    name: ' Tabs'  
5551    data() { 
5652        return  { 
57-             title: title  
53+             title: title , 
54+             addThirdItem:false  
5855        }; 
5956    }, 
6057    methods: { 
6158        onNavigationButtonTap() { 
6259            frameModule .Frame .topmost ().goBack (); 
6360        }, 
61+ 
6462        onLoaded(name ) { 
6563            console .log (' onTabLoaded' name ) 
64+         }, 
65+          createContent(index :  number ) { 
66+     const =  new  Label (); 
67+     label .text  =  ` ${index  ===  0  ?  " Home" :  (index  ===  1  ?  " Account" :  " Search"  ` ; 
68+     label .className  =  " h2 text-center"  
69+     const =  new  GridLayout (); 
70+     stack .backgroundColor  = " yellow"  
71+     stack .addChild (label ); 
72+ 
73+     return  stack ; 
74+ }, 
75+         addPage() { 
76+             console .log (' addPage'  
77+             this .addThirdItem  =  true ; 
78+ 
79+             const =  this .$refs .tabs .nativeView .items .slice (0 ); 
80+              const :  TabContentItem  =  new  TabContentItem (); 
81+         //  The createContent is a custom method that returns a StackLayout with a Label as a chils 
82+             item .content  =  this .createContent (index ); 
83+         items .push (item ); 
84+            this .$refs .tabs .nativeView .items  =  items .slice (0 ) 
6685        } 
6786    } 
6887}); 
6988script >
7089
7190<style >
7291
73- MDTabs { 
74-   /*  color: gold; */  
92+ /*  MDTabs {
7593} 
7694
7795MDTabContentItem.special { 
@@ -96,6 +114,6 @@ MDTabStripItem.nested Label {
96114
97115MDTabStripItem.nested:active Label { 
98116  color: yellowgreen; 
99- } 
117+ }  */  
100118
101119style >
0 commit comments