每当我启动我的应用程序时,标题栏的开头会出现一个白色屏幕。我不希望这个屏幕出现在我的应用程序中。我已经阅读过以前的问题,但答案对我来说并不清楚。
我也在使用启动画面,但在此之前会出现白屏。
我不想更改主题样式,因为它会增加最小sdkVersion或更改edittext,按钮,复选框等的样式
请帮助我让我远离这个。
谢谢。
答案 0 :(得分:3)
前言:对于这样的问题,您应该发布您的起始活动xml和onCreate()
以及相关的方法。
当android启动你的应用程序时,它通常会使用黑色视图来表示它正在启动,这是我选择了你的主题/风格的白色更改。如果您正确加载视图,那么您应该只看到这个空白(白色或黑色)页面50-200毫秒(我现在找不到谷歌文档)。如果您在onCreate
方法中做了大量工作,则需要更长的时间。
通常,为了让我的视图显示更快,我只需在加载后完成大部分链接工作。例如:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.initial_activity_layout);
//We use a handler so that the activity starts very fast
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
delayedInit();
}
}, 100);
}
此外,移动应用程序通常不应该有启动画面,除非它们需要很长时间来加载内容(例如游戏,首次启动文件等),不应该使用只是来为您的应用程序打上品牌,或显示您的公司名称。
更新(2015年7月31日)
Google应用程序现在正朝着启动闪屏的方向发展(请参阅驱动器,GMail等)
此外,除了在onCreate()方法中取消引用视图之外,您不应该做任何其他工作。任何长时间运行的操作,例如从内存中检索信息(数据库,prefs等)都应该在AsyncTaskLoader或AsyncTask中完成。
答案 1 :(得分:0)
如果您正在使用AppCompatActivity,请在style.xml中创建以下主题:
<style name="Theme.Transparent" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsTranslucent">true</item>
</style>
在SplashActivity的清单文件中添加主题:
android:theme="@style/Theme.Transparent"
答案 2 :(得分:0)
1-在您的style.xml中将windowDisablePreview设为false
<item name="android:windowDisablePreview">false</item>
2-在您的style.xml中添加windowBackground。
<item name="android:windowBackground">@drawable/your_background</item>
答案 3 :(得分:0)
在编写初始屏幕时,在初始屏幕主题中添加以下行
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsTranslucent">true</item>