您将能够从下面的代码中看出该应用程序的当前视觉效果如下:
顶部的“新建”工具栏项和下面的选项卡式页面。而且,无论我选择哪个页面,工具栏都仍然位于顶部。我希望工具栏仅在第一页中可见。这有可能吗?我不能放入StackLayout中。
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Test_101"
x:Class="Test_101.MainPage">
<ContentPage Title="Main">
<ContentPage.ToolbarItems>
<ToolbarItem Text="New" Order="Primary"/>
</ContentPage.ToolbarItems>
<StackLayout>
<SearchBar Placeholder="Search..." TextChanged="SearchBar_OnTextChanged"/>
<ListView x:Name="ListView" IsPullToRefreshEnabled="True" Refreshing="ListView_OnRefreshing">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding FName}" Detail="{Binding Skill, StringFormat='Skill: {0}'}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage>
<local:Tryouts Title="Tryouts"/>
<local:Credits Title="Credits"/>
</TabbedPage>
答案 0 :(得分:0)
您可以使用以下代码行从工具栏中删除那些不需要的图标,将其添加到构造函数或onResume方法中
int position = 0; //Add your icon position
ToolbarItems.RemoveAt(position);
答案 1 :(得分:0)
您不能将工具栏直接设置为隐藏。因为contentPage位于RootViewController和Xamarin.forms中,所以不提供这种方法。
因此,我建议您可以创建“自定义渲染器”。然后在iOS和Android中都设置此属性。关于如何使用自定义渲染器,您可以参考链接:HERE
例如
...
using xxx;(your forms's namespace)
using xxx.iOS;
...
[assembly: ExportRenderer(typeof(Tryouts),typeof(Tryouts_iOS))]
namespace xxx.iOS
{
public class Tryouts_iOS:PageRenderer
{
public Tryouts_iOS()
{
}
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
NavigationController.NavigationBar.Hidden=true;
}
public override void ViewWillDisappear(bool animated)
{
base.ViewWillDisappear(animated);
NavigationController.NavigationBar.Hidden = false;
}
}
}