TabLayout和Theme.AppCompat

时间:2017-02-07 16:56:02

标签: android xamarin mvvmcross android-appcompat android-tablayout

我正在尝试在Xamarin Android中实现TabLayout。

但是当我尝试构建一个TabLayout时,我得到以下异常

Java.Lang.IllegalArgumentException:您需要将Theme.AppCompat它们(或后代)与设计库一起使用。

我在.axml布局中使用TabLayout尝试了这个,但是当我给它充气时,我得到了异常。

我还尝试将其从.axml布局文件中取出,并在我充气后以编程方式将其添加到视图中。在这种情况下,我在调用

后直接获得异常
var tabLayout = new TabLayout(Application.Context);

我还在AndroidManifest文件中将主题设置为Theme.AppCompat

我花了两天时间在这上面并需要一些帮助,如果有人有一个他们可以分享的非常简单的工作示例,那将会非常有用。

我正在使用Xamarin和MvvmCross。

2 个答案:

答案 0 :(得分:0)

您提到已在AndroidManifest.xml中添加了主题。根据您为其分配的节点,可能会按照[Activity]Activity属性中指定的内容覆盖构建时间。

通常在Xamarin.Android中,您可以将其添加到[Android]属性,而不是手动编辑清单。

您可以在obj\android中查看结果清单,看看它是否仍包含您设置的主题。否则添加如下:

[Activity(Label = "MyActivity", Theme = "@style/MyTheme")]
public class MyActivity : AppCompatActivity

通过这种方式,它可以在清单的构建时正确添加。

答案 1 :(得分:0)

我不知道发生了什么,但是我将tabLayout放回到.axml文件中并给它一种Theme.AppCompat样式,它现在膨胀了。不太清楚为什么它正在工作,但它正在发挥作用。