我需要在我的蜂窝应用程序中实现启动画面。 我在activity的onCreate中使用这段代码来显示splash:

setContentView(R.layout.splash);
getActionBar().hide();

这段代码将显示主UI:

setContentView(R.layout.main);
getActionBar().show();

但在onCreate被调用和飞溅出现之前,有一小段时间,当动作栏显示。

我怎样才能使动作栏不可见?

我尝试将主题应用于没有动作条的活动:

<item name="android:windowActionBar">false</item>

但在这种情况下,getActionBar()总是返回null,我发现没有办法再次显示它。


当前回答

如果你使用一个活动包括启动屏幕,那么你可以这样做,如果你使用SherlockActionBar

getSupportActionBar().hide();

在启动画面之后,你可以用……

getSupportActionBar().show();

它应该与Android的原生ActionBar相同。

其他回答

我知道发布链接不是最好的方法,但我强烈建议你阅读下面谷歌自己的文档。这是关于如何控制你的系统ui(像动作栏,导航栏等)的官方android文档。不幸的是,这些信息太多了,不能直接发布,但在阅读完这篇文章后,你将确切地了解如何显示和隐藏功能,无论你开发的是什么版本,它是如此简单!

如果链接发生变化,它可以在培训->入门->用户界面最佳实践->管理系统ui的官方android文档下找到

https://developer.android.com/training/system-ui/index.html

把你的启动画面放在一个单独的活动,并使用startActivityForResult从你的主活动的onCreate方法来显示它。根据医生的说法,这是因为:

作为一个特殊情况,如果你在你的活动的初始onCreate(Bundle savedInstanceState)/onResume()期间用requestCode >= 0调用startActivityForResult(),那么你的窗口将不会显示,直到从启动的活动返回结果。这是为了避免重定向到另一个活动时可见的闪烁。

你可能只应该在onCreate参数为空时这样做(指示您的活动的新启动,而不是由于配置更改而重新启动)。

对我来说,最好的结果是用ThemeNoTitleBar创建一个活动,没有内容作为启动器。然后这个活动直接调用给对方。

当然,如果你愿意,你可以向Splash Activity添加内容,但在我的情况下,我只想直接显示应用程序。

清单:

<activity
        android:name="com.package.SplashActivity"
        android:theme="@android:style/Theme.Black.NoTitleBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

活动:

public class SplashActivity extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);

    //start StartActivity
    Intent intent = new Intent(this, StartActivity.class);
    startActivity(intent);
    finish();
}

}

最好和简单

requestWindowFeature (Window.FEATURE_NO_TITLE); getWindow () .setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

实际上,你可以简单地用NoActionBar设置splash Activity 并设置您的主要活动与操作栏。