【问题标题】:TabLayout and Theme.AppCompatTabLayout 和 Theme.AppCompat
【发布时间】:2017-02-09 01:36:54
【问题描述】:

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

但是,当我尝试构建 TabLayout 时,出现以下异常

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

我已经在 .axml 布局中使用 TabLayout 进行了尝试,但是当我膨胀它时,我得到了异常。

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

var tabLayout = new TabLayout(Application.Context);

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

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

我正在使用 Xamarin 和 MvvmCross。

【问题讨论】:

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


【解决方案1】:

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

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

您可以在obj\android 中检查生成的清单,看看它是否仍然包含您设置的主题。否则像这样添加它:

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

这样,它会在构建时正确添加到清单中。

【讨论】:

  • 我不知道发生了什么,但我将 tabLayout 放回 .axml 文件中,并给它一个 Theme.AppCompat 的样式,它现在膨胀了。不太清楚为什么它在工作,但它在工作。
【解决方案2】:

我不知道发生了什么,但我将 tabLayout 放回 .axml 文件中,并给它一个 Theme.AppCompat 的样式,它现在膨胀了。不太清楚为什么它可以工作,但它可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    相关资源
    最近更新 更多