Android - 如何在活动的onCreate()中调用setTitle()时避免延迟

时间:2015-01-23 11:48:51

标签: android android-activity android-launcher android-titlebar

SplashActivity的标题很长,因此在设备主屏幕上的启动图标下面会被截断。

我希望在启动图标下方显示较短的标题,但在活动的操作栏中显示较长的标题。

所以,为了尝试实现这一点,我在清单中指定了一个较短的标题......

<activity
        android:name=".SplashActivity"
        android:label="@string/app_name_short"
        android:launchMode="singleTop" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

......我正在使用......

setTitle(getString(R.string.app_name));

...在onCreate()的{​​{1}}方法中,以便完整标题显示在操作栏中。

它有效,但仅在大约1秒后延迟。 (因此,当显示SplashActivity时,它会在更改为较长的标题之前显示1秒的短标题。)

我有什么方法可以解决这个或任何已知的解决方法吗?

我还尝试创建SplashActivity(标题较短)作为发布活动,包括立即启动PreSplashActivity的代码(带有长标题),但{{1}仍然显示1秒钟(即使它没有调用SplashActivity,所以我有点难过。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

post回答的mark Renouf中,知道意图过滤器可以具有标签属性如果没有,则标签从父母继承成分

答案 1 :(得分:1)

您是否查看了API21的新文档,特别是工具栏? http://developer.android.com/reference/android/widget/Toolbar.html

使用新工具栏,您可以像在任何其他视图中一样将其包含在布局文件中。一个很好的副作用是初始屏幕是空白的,操作栏与其他内容同步显示。这使您可以选择设置标题并在可见之前进行必要的自定义。

以下是有关使用AppCompat支持旧版本的详细信息,其中包含有关在布局中使用工具栏并将其设置为操作栏的部分:http://android-developers.blogspot.ie/2014/10/appcompat-v21-material-design-for-pre.html