Android TabLayout和Theme.AppCompat
我正在尝试在XamarinAndroid中实现一个TabLayout 然而,当我试图构建一个TabLayout时,我得到了以下异常 Java.Lang.IllegalArgumentException:您需要使用一个Theme.AppCompat将它们(或后代)与设计库兼容 我曾在.axml布局中尝试过使用TabLayout,但当我将其充气时,我得到了一个例外 我还尝试将其从.axml布局文件中取出,并在充气后以编程方式将其添加到视图中。在这种情况下,我在调用Android TabLayout和Theme.AppCompat,android,xamarin,mvvmcross,android-appcompat,android-tablayout,Android,Xamarin,Mvvmcross,Android Appcompat,Android Tablayout,我正在尝试在XamarinAndroid中实现一个TabLayout 然而,当我试图构建一个TabLayout时,我得到了以下异常 Java.Lang.IllegalArgumentException:您需要使用一个Theme.AppCompat将它们(或后代)与设计库兼容 我曾在.axml布局中尝试过使用TabLayout,但当我将其充气时,我得到了一个例外 我还尝试将其从.axml布局文件中取出,并在充气后以编程方式将其添加到视图中。在这种情况下,我在调用 var tabLayout = n
var tabLayout = new TabLayout(Application.Context);
我还在AndroidManifest文件中将theme设置为theme.AppCompat
我花了两天的时间在这方面,需要一些帮助,如果有人有一个非常简单的工作示例,他们可以分享,这将是有用的
我使用的是Xamarin和MvvmCross。您提到您已经向AndroidManifest.xml添加了一个主题。根据您将其分配给哪个节点,它可能会在构建时被您的
活动上的[Activity]
属性中指定的内容覆盖
通常在Xamarin.Android中,您会将其添加到[Android]
属性中,而不是手动编辑清单
您可以在obj\android
中检查生成的清单,看看它是否仍然包含您设置的主题。否则,按如下方式添加:
[Activity(Label = "MyActivity", Theme = "@style/MyTheme")]
public class MyActivity : AppCompatActivity
通过这种方式,它将在构建时正确添加到清单中。我不知道发生了什么,但我将tabLayout放回了.axml文件,并将其命名为Theme.AppCompat,现在它膨胀了。不太清楚它为什么起作用,但它起作用了。可能是重复的否,不幸的是,所有这些都没有对我起作用。我不知道发生了什么,但我将tabLayout放回了.axml文件,并给它一个Theme.AppCompat样式,现在它膨胀了。不太清楚它为什么起作用,但它起作用了。