我试图通过使用tabbedpage在xamarin android中创建一个底部导航栏,但是一旦我调试了这个应用程序,它实际上并不存在。
xaml-前端:
<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);
}
}发布于 2019-12-02 17:24:30
我在我这边进行了测试,当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。
https://stackoverflow.com/questions/59118230
复制相似问题