工具栏的自定义渲染器项不适用于TabbedPage

时间:2017-10-03 14:26:38

标签: xaml xamarin xamarin.ios xamarin.forms uinavigationbar

我在标签页中有两个工具栏项目(有两个标签页)。

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage 
        xmlns="bla"
        xmlns:x="bla"
        xmlns:views="clr-namespace:TestApp.Views"
        x:Class="TestApp.Views.MyTabbedPage"
        >
    <views:Page1 Title="Page 1" />
    <views:Page 2 Title="Page 2" />
</TabbedPage>

我正在尝试使用自定义渲染器移动左侧的一个工具栏项:

assembly: ExportRenderer(typeof(MyTabbedPage), typeof(TabbedPageRenderer))]
namespace TestApp.iOS
{
    public class TabbedPageRenderer : TabbedRenderer
    {
        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);

            var navigationItem = this.NavigationController.TopViewController.NavigationItem;
            if (navigationItem.RightBarButtonItems.Length > 1)
            {
                navigationItem.LeftBarButtonItems = new UIBarButtonItem[] { navigationItem.RightBarButtonItems[1] };
            }            
            navigationItem.RightBarButtonItems = new UIBarButtonItem[] { navigationItem.RightBarButtonItems[0]};
        }

    }
}

第一次加载页面时,它可以正常工作。但是,当我单击选项卡以显示第2页时,它再次向右渲染两个工具栏项(左侧的项目保持在左侧),从而生成3个工具栏项。

有人可以帮我解决这个小问题吗?

干杯

0 个答案:

没有答案