最近在做 FlutterPlugin ,需要把 Android 和 ios 的依赖接入,并且桥接给 Flutter 调用
在 Flutter 端执行跳转的时候遇到了这个问题
百度了解决方案
解决方案1
修改继承的 Activity 为 AppCompatActivity,但由于我这是Flutter 项目,而 Flutter 只有一个 FlutterActivity 所以,这个方法不管用。
解决方案2
修改 AndroidManifest.xml 里 MainActivity 的 theme android:theme="@style/LaunchTheme"
(Flutter 默认是LaunchTheme)
所以去修改 styles
<style name="LaunchTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Show a splash screen on the activity. Automatically removed when
Flutter draws its first frame -->
<item name="colorPrimary">@color/white</item>
<item name="colorPrimaryDark">@color/white</item>
<item name="colorAccent">@color/white</item>
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
最终解决方式:
将 AndroidManifest.xml 中 application 标签的 theme 设置为 android:theme="@style/AppTheme"
并且在 styles 中新建 AppTheme
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- 自定义自己的主题样式 -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
为了保证数据一致性,不要直接设置颜色值,因为有可能插件也引用了 AppTheme,
这时候就需要在 values 中新建 colors.xml,设置属性
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#ffffff</color>
<color name="colorPrimaryDark">#3700B3</color>
<color name="colorAccent">#03DAC5</color>
</resources>