Leanback的AppCompat主题

时间:2018-06-18 06:24:21

标签: android android-appcompat android-tv leanback

我打开旧的Android TV应用程序项目并尝试更新依赖项。然后我将appcompat库更新为27.1.1。我打开了leanback片段,Android Studio警告我{@ 1}}已弃用,我应该使用BrowseFragment代替。其他斜背片段的情况也是如此。然后我将所有片段更改为AppCompat版本(BaseSupportFragment除外,因为没有提供AppCompat版本)然后更改了我的活动扩展LeanbackSettingsFragment

在我做了这些更改之后,我构建了应用程序,但是当我启动应用程序时,我在logcat中看到了这个错误:

  

无法启动活动ComponentInfo {net.swiftzer.trainboard.dev/net.swiftzer.trainboard.main.MainActivity}:java.lang.IllegalStateException:您需要在此活动中使用Theme.AppCompat主题(或后代)

我用于应用和活动的主题都在AppCompatActivity下。但我检查的主题是基于平台原生主题。

我应该坚持使用已弃用的leanback片段类还是leanback库提供AppCompat主题? leanback库就像一个半生不熟的库。我看到leanback库去年提供了AppCompat版本的片段,但没有样本项目正在使用它们。现在,他们将Theme.Leanback扩展的片段类标记为已弃用,但它们没有提供正确的迁移方式。

2 个答案:

答案 0 :(得分:5)

您不能将 Theme.Leanback 用于扩展 AppCompatActivity 的活动。要使用支持片段,您也不能使用 android.app.Activity 来扩展活动。要使用支持片段,请通过 android.support.v4.app.FragmentActivity 扩展您的活动。

答案 1 :(得分:0)

不允许将AppCompat主题用于带有Leanback库的Android TV。 您应该扩展BaseActivity中的FragmentActivity,以受益于Support组件。