gpt4 book ai didi

Android studio 布局预览没有获取我当前的主题

转载 作者:行者123 更新时间:2023-12-05 00:13:44 24 4
gpt4 key购买 nike

我有一个测试多模块项目,有些模块看不到我的应用程序主题。更详细地说,模块如下:应用程序、公共(public)、主页和详细信息。

应用程序模块包含一个 Activity 和导航,公共(public)部分包含字符串,样式和主页/详细信息包含一个虚拟 fragment 。所有 fragment 都实现了包含我的风格的公共(public)模块。

// Modules
implementation project(path: ':navigation')
implementation project(path: ':common')

因此,当我转到 Activity 的布局编辑器并尝试从预览中更改主题时,我可以看到并选择我的主题。 activity_main.xml

但是我转到 HomeFragment 的布局,不存在这样的选项。 fragment_home.xml

当然,当我运行应用程序时,样式可以按预期工作,唯一的问题是预览不起作用。这是公共(public)模块上的主题:

<?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="AppTheme" parent="Theme.Leanback.Browse">
<!-- Theme.AppCompat compatibility: -->
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>

<!-- Theme.MaterialComponents compatibility: -->
<item name="colorPrimary">#171717</item>
<item name="colorPrimaryVariant">#212121</item>
<item name="colorAccent">#DD1C1A</item>
<item name="colorOnPrimary">#eeeeee</item>
<item name="colorSecondary">#FFEB3B</item>
<item name="colorSecondaryVariant">#FFC107</item>
<item name="colorOnSecondary">#eeeeee</item>
<item name="colorSurface">#2196F3</item>
<item name="colorOnSurface">#eeeeee</item>

</style>

</resources>

我在试验和错误过程中观察到的一件事是,如果我将主题父级从 Leanback 更改为 Theme.AppCompat,预览可以工作,但我不能这样做,因为我需要 Leanback。最后,除了应用程序之外的所有模块都是库模块 apply plugin: 'com.android.library'

我的设置是 Windows 10 PC,使用的是 Android studio 4 canary 8。我也在 Android studio 4 canary 2 上进行了测试,结果相同。

编辑:解决方案在模块 list 上设置默认主题,感谢@Martin Zeitler

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.home">

<application android:theme="@style/AppTheme" />
</manifest>

最佳答案

您可以通过将 android:theme 添加到 application 节点,在 AndroidManifest.xml 中分配默认主题。这也适用于库模块,因为它们有一个空的 application 节点,可以在其中定义 XML 预览的默认主题。

关于Android studio 布局预览没有获取我当前的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59660431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com