android - 在 Android Studio 中的每个预览中都会显示闪屏主题

标签 android themes splash-screen

我创建了一个 SplashScreen,使用我自己的主题......

<style name="AppTheme.Launcher">
        <item name="android:windowBackground">@drawable/splash_test</item>
</style>

...在应用加载时应用为应用的主题...
android:theme="@style/AppTheme.Launcher"

...然后在启动的Activity的onCreate中更改为AppTheme:
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);

一切正常,但我有一个有趣的问题。使用 Launcher 主题的所有屏幕预览,现在看起来像:

enter image description here

我就是不能这样工作。 =)

我怎样才能避免这个“问题”?

最佳答案

在你@drawable/splash_test您可以为 tools 设置可为空的可绘制对象或只是不同的颜色命名空间。
例如,当您有这种类型的启动画面(只是颜色 + 图标)时:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:opacity="opaque">

    <item android:drawable="@color/color_background" />

    <item
        android:width="200dp"
        android:height="150dp"
        android:drawable="@drawable/splash_logo"
        android:gravity="center" />

</layer-list>
您可以设置新的drawabletools命名空间:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"      <--- ADDED THERE #1
    android:opacity="opaque">

    <item
        android:drawable="@color/color_background"
        tools:drawable="@color/color_for_preview" />     <--- ADDED THERE #2

    <item
        android:width="200dp"
        android:height="150dp"
        android:drawable="@drawable/splash_logo"
        android:gravity="center"
        tools:drawable="@color/color_for_preview" />     <--- ADDED THERE #3

</layer-list>
所以对于 tools像Android Studio Preview,会有color_for_preview颜色。

关于android - 在 Android Studio 中的每个预览中都会显示闪屏主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55441585/

相关文章:

作为 Intent.ACTION_SEND 发送时 Android PDF 不被接受

java - 使用 android studio 构建 Selenium 项目失败

java - 如何在 Android 应用程序上提出一系列问题并重用相同的 fragment 和布局?

javascript - 带有主题选项的纯 HTML 网站

android - 设置内容 View ();在我的闪屏 Activity 中出错

linux - 如何通过backgm在网络连接之前保持闪屏直到网络正常并进入youtube页面

android - 如何在 Android 7 中限制 MediaStore 的持续时间

css - 我在更改主题时遇到问题

windows - 如何以编程方式更改当前的 Windows 主题?

java - 如何在 Android 中显示启动画面?