实习第7天--actionbar提前加载等相关问题

来源:互联网 发布:蒙自电视台网络直播 编辑:程序博客网 时间:2024/04/29 19:37

今天在调试程序的时候发现了一个问题,在MainActivity加载前就会其他界面显示,如下图:


一直以为是设备卡的原因造成,后开调试发现在MianActivity的onCreat()方法前就出现了,完全不知道是什么原因,有过好多猜测,可能和使用的lib有关,因为这个Activity是继承的一个第三方类库,但是也不太可能在onCreat()之前就出现吧,调试了了好久没什么结果。然后换了主Activity,还是会有这个问题,然后就测地困惑了。


去问Google吧,貌似这个问题都不好描述,用什么关键字来搜索呢。。后来经过好久的搜索终于有点眉目了,好像是和ActionBar有关,在API11以后,默认主题中是带有ActionBar的,在应用启动时,是默认会显示的(就像API11前启动时默认是全黑的界面,这个就是全黑加一个ActionBar,这些都是和Theme设置有关的)。


而这个明显不是默认主题,是自定义的ActionBar,在style.xml中有相关的设置。


那么怎么解决这个问题,又是好久的搜索和尝试。。。
1.在启动时先加载SplashActivity,可能这个activity动作很少,速度较快,能跳过那个难看的actionbar界面。。结果是失败告终。


2.查到可以在manifest文件中设置activity的theme为


<activity android:theme="@android:style/Theme.Holo.NoActionBar">


但是minSdkVersion为8,根本就没有这个theme,于是将8改成了11,加入这个设置,问题差不多就解决了。


程序在启动时还是会先出现黑屏,再进入activity。后面经过搜索,也解决了,通过自定义theme,可以将黑色设置为任何颜色或者透明
<style name="MyTheme" parent="android:Theme.Holo.Light">
        <item name="android:windowIsTranslucent">true</item>透明
        <item name="android:windowNoTitle">true</item>无标题
        <item name="android:windowActionBar">false</item>去掉ActionBar
        <item name="android:windowBackground">@android:color/transparent</item>透明
    </style>

在启用这个Theme以后,将minSdkVersion改回8也有效,问题解决。

0 0
原创粉丝点击