Gáb*_*kás 5 c# tabbar navigationbar xamarin.forms
我正在使用Xamarin.Forms,我想创建一个类似于Facebook应用程序的导航方法,以及其他不同应用程序的更新版本.这是两张图片,一张是Android上的Facebook应用程序,另一张是KakaoTalk,也是在Android上.


我已经尝试了几种不同的方法来实现它.例如,我将MainPage(TabbedPage)包装在NavigationPage中.我还尝试在NavigationPage中包装MainPage(ContentPage)然后调用
PushAsync(new TabbedPage());
Run Code Online (Sandbox Code Playgroud)
通过该Navigation属性在MainPage内.我还尝试将MainPage(TabbedPage)的子项包装在单独的NavigationPage中.这些尝试都没有产生预期的效果.
我希望以下情况发生.当用户点击按钮或导航到另一个页面的东西时,我希望ContentPage弹出所有内容(包括标签栏),导航栏(或操作栏)除外.显然,这通过该PushAsync()方法发生,该方法还导致导航栏中出现小的后退箭头.我的理解是,PushAsync()调用将所选页面推送到NavigationPage提供的导航堆栈.因此,如果TabbedPage被包装在NavigationPage中,则新的ContentPage将无法像在上面提到的两个应用程序中一样弹出选项卡.
这个以及所述应用程序的标签栏没有进入横向模式的ActionBar(在Android中)这一事实让我相信我想要实现的最好不要使用TabbedPage,而是像标签栏,例如也许是水平的按钮堆栈.
有没有人使用Xamarin.Forms以正确的方式正确实现这一点?所以再一次,我想让这个标签像导航一样,标签停留在横向模式下的ActionBar下面,当推到导航堆栈上时,新标签出现在标签前面(隐藏它们).你认为这可以用Custom Renderer来完成吗?当然在iOS中这些都是使用标签完成的,但在Android中我不确定.
我想要的不一定是代码示例,而是这个问题的最佳实践.再次,这是在Xamarin.Forms与一个常见的PCL项目和一个Android和iOS项目.提前感谢您的答案和建议!
PS:我之前很明显搜索过这个网站(谷歌也是如此),但我没有找到关于这个问题的真实文章.
我的理解是 PushAsync() 调用将所选页面推送到 NavigationPage 提供的导航堆栈上。因此,如果 TabbedPage 包装在 NavigationPage 内,则新的 ContentPage 将无法像上面提到的两个应用程序那样在选项卡前面弹出。
这实际上是不正确的。根据Xamarin API 文档,该Navigation属性是上下文感知的,即它将找到其所有父级,直到出现NavigationPage.
在 Android 中,只允许使用一个 NavigationPage,因此即使您PushAsync()在 内部调用TabbedPage,它仍然会通过您的包装进行推送NavigationPage。