【发布时间】:2019-06-29 13:59:17
【问题描述】:
我正在对 Android 中的 MVP 设计模式进行一些研究,并遇到了一个关于启动画面的问题。我正在使用 MVP 设计模式开发的应用程序在启动屏幕的活动上没有特定的行为。
在这种情况下,我应该考虑使用MVP设计模式来构建启动屏幕的活动,还是简单地制作没有MVP模式的启动屏幕活动?
你能给我一些建议吗?
提前致谢。
【问题讨论】:
标签: java android design-patterns
我正在对 Android 中的 MVP 设计模式进行一些研究,并遇到了一个关于启动画面的问题。我正在使用 MVP 设计模式开发的应用程序在启动屏幕的活动上没有特定的行为。
在这种情况下,我应该考虑使用MVP设计模式来构建启动屏幕的活动,还是简单地制作没有MVP模式的启动屏幕活动?
你能给我一些建议吗?
提前致谢。
【问题讨论】:
标签: java android design-patterns
MVP、MVVM、MVC所有这些设计模式都用于以系统的方式维护代码并用于分离事物。由于您的 Splash screen 不会有很多代码,因此创建演示者类并实现它不是一个好主意。我会说只是跳过那个活动。并遵循其他活动的设计模式
【讨论】:
开闭原则
软件实体...应该对扩展开放,但对修改关闭。
即使您的启动画面没有特定的行为,您也应该考虑使用 MVP。
此外,您应该考虑使用您的特殊主题,而不是为其创建布局。
创建一个名为backgroundDrwable.xml 的drawable,内容如下(根据需要更改颜色和drawable):
<item android:drawable="@color/mycolor" />
<item>
<bitmap android:src="@drawable/app_logo"
android:gravity="center" />
</item>
在 styles.xml
中创建新主题 <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/backgroundDrwable</item>
</style>
您不需要在onCreate 方法中提供任何布局,这个主题将呈现一个背景,您的app_logo 居中。是的,不要忘记在 AndroidManifest.xml
SplashActivity
<activity android:name=".SplashActivity" android:theme="@style/SplashTheme">
【讨论】:
为什么不创建启动画面而不弄乱您的代码?
创建样式:
<style name="splashScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@mipmap/app_icon</item>
</style>
将此样式添加到清单中的活动
<activity android:name=".Activity"
android:theme="@style/splashScreenTheme">
【讨论】: