【问题标题】:AppCompat theme for LeanbackLeanback 的 AppCompat 主题
【发布时间】:2018-11-26 22:58:40
【问题描述】:

我打开了旧的 Android TV 应用项目并尝试更新依赖项。然后我将 appcompat 库更新为 27.1.1。我打开了leanback 片段,Android Studio 警告我BrowseFragment 已弃用,我应该改用BaseSupportFragment。其他leanback 片段的情况相同。然后我将所有片段更改为 AppCompat 版本(LeanbackSettingsFragment 除外,因为没有提供 AppCompat 版本),然后更改了我的活动扩展 AppCompatActivity

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

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

我用于应用程序和活动的主题都在Theme.Leanback下。但是我检查了主题是基于平台原生主题的。

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

【问题讨论】:

    标签: android android-appcompat android-tv leanback


    【解决方案1】:

    您不能将 Theme.Leanback 用于扩展 AppCompatActivity 的活动。对于使用 support fragment,您也不能使用 android.app.Activity 扩展 Activity。使用 support Fragment 使用 android.support.v4.app.FragmentActivity 扩展您的活动。

    【讨论】:

      【解决方案2】:

      您不能将AppCompat 主题用于带有Leanback 库的Android TV。 您应该扩展 FragmentActivityBaseActivity 以从 Support 组件中受益。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-29
        • 1970-01-01
        • 1970-01-01
        • 2015-08-31
        • 1970-01-01
        • 2013-12-06
        相关资源
        最近更新 更多