Xamarin Forms Custom TabbedRenderer删除了Android上的TabLayout

时间:2018-09-21 08:13:30

标签: android xamarin xamarin.forms xamarin.android

当我在Xamarin Forms中为TabbedPages使用自定义渲染器时,TabLayout被完全删除,因此只能访问第一个Tab。 像这样的“空”自定义渲染器甚至是这种情况:

public class MyTabbedRenderer: TabbedRenderer
    {
        public MyTabbedRenderer(Context c) : base(c) { }
        public MyTabbedRenderer() : base() { }
    }

当我不为TabbedPage使用自定义渲染器时,Tablayout可以很好地呈现。

这是Bug还是我忘记了一些代码?我只是在Android上使用自定义渲染器。

编辑:页面Xaml

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            x:Class="App.Client.View.MyTabbedPage">
    <TabbedPage.ToolbarItems>
        <ToolbarItem/>
    </TabbedPage.ToolbarItems>
    <ContentPage>
        <ContentPage.Content>
            <view:MyView1/>
        </ContentPage.Content>
    </ContentPage>
    <ContentPage>
        <ContentPage.Content>
            <view:MyView2/>
        </ContentPage.Content>
    </ContentPage>
</TabbedPage>

1 个答案:

答案 0 :(得分:3)

我继承的TabbedRendererXamarin.Forms.Platform.Android.TabbedRenderer

此渲染器使用旧的ActionBar布局,该布局在Android 5.0 Lollipop中已弃用。

Xamarin.Forms.Platform.Android.AppCompat.TabbedPageRenderer继承并利用AppCompat的ToolbarTabbar解决了该问题。