<TabVIEw [(ngModel)]="tabSelectedindex" height="300px" (selectedindexChanged)="onSelectedindexChanged($event)"> <StackLayout *tabItem="{Title: 'Tab 1'}"> <Label text="Content in Tab 1"></Label> </StackLayout> <StackLayout *tabItem="{Title: 'button 1'}"> <!-- these won't be content here because clicking this should not change to a another tab,but instead should do something else. --> </StackLayout> <StackLayout *tabItem="{Title: 'Tab 2'}"> <Label text="Content in Tab 2"></Label> </StackLayout></TabVIEw>
我想在标签栏中有一个按钮,它不会改变视图,而是做其他事情(比如打开一个模态对话框).
我尝试了一个新的< StackLayout> < TabVIEw>的内部和外部.
我也尝试使用< absoluteLayout>.所有方法都导致应用程序崩溃.
是否可以使用selectedindexChanged捕获选项卡视图更改并阻止更改?
我在事件上尝试了stopPropagation()但出现了错误:
类型’SelectedindexChangedEventData’上不存在属性’stopPropagation’.
我尝试将视图更改回单击中间按钮时存在的视图,但是有一个明显的闪烁,因为视图必须在此事件被触发之前更改.可接受的是类似onSelectedindexWill Change,但该方法不存在.
onSelectedindexChanged(args: SelectedindexChangedEventData) { if (args.newIndex === 1) { //the mIDdle button setTimeout(() => { tabVIEw.selectedindex = args.oldindex; //go back to the prevIoUs vIEw (causes flicker) //do stuff for the button click. }); } }
或者是否有另一种方法可以在标签栏中添加一个不链接到新视图的按钮?
或者我应该不实现本机标签栏,而只是从头创建一个导航栏?
Here’s how it can be done for ios.
Here is a sample app in NativeScript playground showing the issue. Click center link to see the flicker.
解决方法 事实上,NativeScript团队拒绝了 export the delegates,这不是你可以在这一点上进行补丁的事情.唯一的方法是分叉 TabView代码并使用它创建自己的插件.但是,一旦获得分叉副本,进行此更改应该相当简单.你只需要在第64行公共tabbarControllerShouldSelectVIEwController(tabbarController:UITabbarController,vIEwController:UIVIEwController):boolean {
您只需要检测它正在尝试加载哪个vIEwController;然后在您不想实际更改视图的情况下返回false. 总结
以上是内存溢出为你收集整理的ios – NativeScript TabView上的叠加按钮?全部内容,希望文章能够帮你解决ios – NativeScript TabView上的叠加按钮?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)