Android Studio布局预览默认主题

42
也许这是 Android Studio 中众所周知的选项,但我找不到它,谷歌也没有帮助我 :( 每次我在 Android Studio 中打开布局预览时,它会将 Material.Light 主题应用于项目中的每个布局,我需要手动应用自己的主题才能看到它在真实应用程序中的效果。有人知道如何将默认的 Material.Light 主题更改为我的自定义主题,并在使用 Layout Previewer 预览布局时进行设置,这样我就不必每次都手动应用了吗?

先感谢你们的帮助。


你在清单文件中将主题更改为自定义主题了吗?这样做后,请在预览器中更改主题。 - Abhi
2
你找到解决方案了吗?我这里也遇到了同样的问题。 - Dr.jacky
@Dr.jacky no :( - Olexii Muraviov
5个回答

6

点击此处并更改主题为您的主题。

点击此处并更改主题

如果您想要一个默认的主题,可以在Manifest文件中<application>标记中添加android:theme="@style/YourTheme"

从下一次开始创建新的xml文件时,这将是您的默认主题。


15
我知道。我的问题是我是否可以在设置中设置我的自定义主题来预览布局,这样我就不需要像您在图片中展示的那样每次手动设置了。 - Olexii Muraviov
2
我已经尝试过了,但在布局预览上没有效果 :( - Olexii Muraviov
12
如果您的布局位于库模块中,则必须将主题添加到该模块的 AndroidManifest 文件中。 - Herrbert74
6
这不是解决方案。你需要在清单文件的应用程序块中设置启动主题,才能使用SplashScreen API。 - DanMan
1
我不想改变我的应用程序主题。我的默认应用程序主题是浅色的。但每次我打开项目中的任何xml文件时,我都需要手动切换到暗色主题。为什么这个选项不能保持到下一次切换? - John
显示剩余3条评论

5
AndroidManifest.xml 文件的应用程序标签中,您需要提供默认主题。如果您不提供 android:theme="@style/{themeName},则会添加 Material.Light 默认主题。
请查看我的清单文件代码片段示例。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mypackage.iqall" >

    <uses-permission android:name="android.permission.INTERNET" />


    <application
        android:allowBackup="true"
        android:icon="@drawable/iqall_main"
        android:label="@string/app_name"
        android:logo="@drawable/logo"
        android:theme="@style/AppTheme" <!--in Preview you will see this as default preview-->
        android:name=".IQallApp">
  </application>

</manifest>

10
这不是一个解决方案。您需要在清单文件的应用程序块中设置闪屏主题,才能使用闪屏 API。 - DanMan

4
在所有模块中的清单文件中,设置:
<application android:theme="@Theme/mainTheme">
</application

如果您在应用程序模块中使用启动画面主题(官方方式),请注意:
 <application
        android:theme="@style/SplashTheme"
        tools:replace="android:theme">

 </application>

并重新启动 Android Studio(非常重要)


你能提供“官方方式”的源代码/链接吗? - MatJB
@MatJB 我在谈论启动屏幕库,现在有一种官方的方法来创建启动屏幕。https://developer.android.com/develop/ui/views/launch/splash-screen - Pauland
1
很遗憾,您的答案设置了应用程序的默认主题,但OP正在寻找一种方法来仅为Android Studio中的Design布局预览设置默认主题,而无需修改应用程序的默认主题。 - MatJB
@MatJB 设计布局预览使用您的默认应用程序主题。但是,如果您的布局在模块库中,则无法找到它。您必须在此库中指定默认主题。(并且不要忘记在您的应用程序模块中添加tools:replace="android:theme") - Pauland
谢谢!在所有模块中更换了一个主题,结果很顺利。 - undefined

1
如果你希望Android Studio始终在布局预览中显示特定的主题,那么在该布局的XML文件中,你可以添加tools:theme="@style/Theme.App"
这将自动应用此主题以供开发查看目的,当打开一个布局文件时。这样,你就不需要从启动闪屏主题(Theme.Starting)设置为实际应用程序主题(Theme.App)。
注意:你需要将此代码添加到所有需要在XML布局文件预览中显示Theme.App的布局XML文件中。
示例代码:
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:theme="@style/Theme.App">

0

找到解决方案了!

必须在清单文件中进行设置,但是等等,有一个变通方法。使用工具,然后它只会影响Android Studio布局预览中的默认主题。

<application tools:theme="@style/RetailTheme">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接