问题分析:
主要是因为在开启一个应用的时候,当前界面并不是第一界面,在它之前,还有一个界面启动了,这个界面的唯一目的就是启动主界面,它目的不是显示。虽然如此,但是呢,这个界面的theme因为没有做统一处理,它的actionBar可能是黑色的,但是之后的ActionBar可能是白色的,这样就导致了进入主界面的时候,会感觉到ActionBar会闪一下白屏。
解决方法:
只要找到这个界面就可以了,然后把这个界面的theme进行修改,如下的例子
<resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="AppBaseTheme" parent="@android:style/Theme.Funui"> <item name="android:windowFullscreen">true</item> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> <item name="android:actionBarTabTextStyle">@style/customActionBarTabTextStyle</item> <item name="android:actionBarTabStyle">@style/SettingsActionBarTabView</item> <item name="android:actionBarStyle">@style/SettingsBarStyle</item> <item name="android:actionModeStyle">@style/ActionModeStyle</item> <item name="android:actionModeSplitBackground">@android:drawable/ic_menu_close_clear_cancel</item> </style> <style name="AppTheme.Main" parent="@style/AppTheme">
<!--不能是background-->
<item name="android:windowBackground">@color/window_color</item> <item name="android:actionBarStyle">@style/SettingsBarStyle.Main</item> </style> <style name="SettingsBarStyle.Main" >
<!--actionBar不显示内容-->
<item name="android:displayOptions">@null</item> </style> </resource>
定义了一个App.Main之后,找到启动界面就可以了
<activity android:name="com.vz.gallery3d.VzGalleryActivity" android:theme="@style/AppTheme.Main" android:clearTaskOnLaunch="true" android:screenOrientation="portrait" android:uiOptions="splitActionBarWhenNarrow"> </activity>
这里遇到了一个问题,就是我们在设定background之前,你会发现跳转就面的ActionBar打到了目的,但是这时候的主界面会闪一下白色,初步想到的是,可能还需要设置一下界面的background,然后就设定了
<item name="android:background">#000000</item>然后似乎完美解决了这个问题,但是,新的问题又来了,那就是你会发现这个黑色并不是在最底层的,而是在上面第二层,也就是说,你打开一个图片,你会发现这个图片被这个黑色完全覆盖了。之后替换成了<item name="android:windowBackground">@color/window_color</item>,完美解决问题