Xamarin.Forms 中 TabbedPage 上的 Android.Views.InflateException

Posted

技术标签:

【中文标题】Xamarin.Forms 中 TabbedPage 上的 Android.Views.InflateException【英文标题】:Android.Views.InflateException on TabbedPage in Xamarin.Forms 【发布时间】:2021-06-11 06:12:48 【问题描述】:

错误: android.Views.InflateException: 'Binary XML file line #1: Binary XML file line #1: Error inflating class android.support.design.widget.TabLayout'

我添加了新的 TabbedPage,然后在 AppShell.xaml

<ShellContent Title="About" Route="AboutTabbedPage" ContentTemplate="DataTemplate local:AboutTabbedPage"  />

但是当我在模拟器中点击“关于”时,它抛出错误

Android.Views.InflateException: 'Binary XML file line #1: Binary XML file line #1: Error inflating class android.support.design.widget.TabLayout'

在任何新的 TabbedPage 上都会引发错误。

TabbedPage的内容如下

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            x:Class="myapp.Views.AboutTabbedPage"
            Title="Binding Title"
             xmlns:vm="clr-namespace:myapp.ViewModels"
            
            >
  <!--Pages can be added as references or inline-->

    <ContentPage Title="Tab 2">
        <StackLayout>
            <Label Text="Green"  HorizontalTextAlignment="Center" HorizontalOptions="FillAndExpand" Margin="5" />
            <BoxView Color="Green" VerticalOptions="FillAndExpand" />
        </StackLayout>
    </ContentPage>
</TabbedPage>

android项目中的styles.xml如下:

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
  </style>

【问题讨论】:

【参考方案1】:

我不得不更改 ...Android\Resources\layout\Tabber.xml 项目中的 TabLayout 从 android.support.design.widget.TabLayoutcom.google.android.material.tabs.TabLayout 然后它开始按预期工作。

【讨论】:

以上是关于Xamarin.Forms 中 TabbedPage 上的 Android.Views.InflateException的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms:Forms.Context 已过时

Xamarin.Forms 手势密码实现

在 xamarin.forms 中应用动画

ScrollView 问题中的 Xamarin.Forms 捏手势

在 Xamarin.Forms 中编写设备平台特定代码

在 Xamarin.Forms 中使用 Android 绑定