c# - 选项卡式页面未显示,但我收到 0 个错误
问题描述
我正在尝试通过使用 tabbedpage 在 xamarin android 中创建一个底部导航栏,但是一旦我调试应用程序,它实际上并不存在。
xml-前端:
<TabbedPage.Children >
<NavigationPage Title="Upload">
<x:Arguments>
<views:Upload/>
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Events" >
<x:Arguments>
<views:Events/>
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Projects" >
<x:Arguments>
<views:Projects/>
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Registration">
<x:Arguments>
<views:Registration/>
</x:Arguments>
</NavigationPage>
</TabbedPage.Children>
</TabbedPage>
c# - 后端:
public partial class TabbedPage : Xamarin.Forms.TabbedPage
{
public TabbedPage()
{
InitializeComponent();
On<Xamarin.Forms.PlatformConfiguration.Android>().SetToolbarPlacement(ToolbarPlacement.Bottom);
}
}
解决方案
我在我这边测试,当Tabs超过3时会发生,这是Android的默认行为。您的标签仍然存在 - 点击它们应该在的位置,您会看到标签发生变化。如果添加图标(设置 IconImageSource 属性),即使文本为空白,图标也会显示。这里给你一个解决方法。
您可以首先使用Naxam.BottomTabbedPage作为解决方法
下载Naxam.BottomTabbedPage nuget。
然后让你的页面扩展BottomTabbedPage
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class MyTabbedPage: BottomTabbedPage
{
public TabbedPage1()
{
InitializeComponent();
}
}
在 MyTabbedPage.xaml 添加xmlns:naxam="clrnamespace:Naxam.Controls.Forms;assembly=Naxam.Controls.Forms"
:
<?xml version="1.0" encoding="utf-8" ?>
<naxam:BottomTabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:views="clr-namespace:TabbedPageDemo.Views"
xmlns:naxam="clr-namespace:Naxam.Controls.Forms;assembly=Naxam.Controls.Forms"
x:Class="TabbedPageDemo.Views.MyTabbedPage">
<NavigationPage Title="Upload">
<x:Arguments>
<views:Upload/>
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Events" >
<x:Arguments>
<views:Events/>
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Projects" >
<x:Arguments>
<views:Projects/>
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Registration">
<x:Arguments>
<views:Registration/>
</x:Arguments>
</NavigationPage>
</naxam:BottomTabbedPage>
还有另一种解决方法,您只需要编写一个简单的效果 ( NoShiftEffect ) 即可应用于我们的 Xamarin.Forms TabbedPage。
推荐阅读
- c# - .NET 进程的内存转储中有大量无法解释的内存
- php - 如何使用 PHP 访问该数组文件中的数据?
- unix - 使用 awk 使用从 file2 到 File1 的所有 4 列对 csv 进行 vlookup
- arrays - Typescript[ARRAY OF OBJECTS] 获取初始化数组中键的值
- amazon-web-services - AWS Lambda 函数中的数据库连接管理
- java - 为什么找不到适合 jdbc:derby:derbyDB 的驱动程序
- android - Android前台服务上的Firebase身份验证
- python - 从 Web3.py 部署使用 OpenZeppelin 制作的合约
- python-3.x - 使用 NumPy linspace 指定图形范围
- excel - 在 VBA 中识别具有颜色的列或行