在我的自定义标题栏出现之前显示的默认标题栏

Default title bar displayed before my custom title bar appears

我正在开发一个 android 应用程序,我需要使用一张图片和两个按钮来使用我的自定义标题栏。问题是,当我启动我的应用程序时,在我的自定义标题栏出现之前的 1 或 2 秒内,会显示丑陋的默认标题栏 "my application"。最小目标 API 是 15。

在 stack overflow 上找到的所有答案都没有用,或者成功地让它消失了,但对我的自定义标题栏做了同样的事情。

这是我在 activity 中的调用方式:

supportRequestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
super.onCreate(savedInstanceState);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.topbarclassic);

因为我的第一个视图是一个片段,所以我不调用 SetContentView

这是我的习惯styles.xml:

<resources>

    <style name="theme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowTitleSize">50dp</item>
        <item name="android:windowNoTitle">false</item>
    </style>

</resources>

我的自定义标题栏再次正常工作。我只需要摆脱应用程序启动时快速显示的默认设置。非常感谢!

如果您使用此样式,activity 将在没有操作栏的情况下加载

<style name="theme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

那你真的应该使用工具栏来设置操作栏。例如:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?attr/actionBarSize" />

</RelativeLayout>

然后在您的 activity 中,您可以像这样设置操作栏:

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

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

别忘了在 AndroidManifest.xml

中设置它们
    <activity
        android:name=".path.MyActivity"
        android:theme="@style/theme"/>

如果使用 Modge 的 link 关于启动画面找到了解决我的问题的方法。

它本身并不能解决问题,但仍然是一个很好的解决方法。

我创建了一个小activity 负责启动画面,避免白色的第一个画面停留太久。然后这个飞溅重定向到我的主 activity.

这对我来说也很有用,因为我可以在启动画面期间启动一些连接过程。你可以按照这个例子:http://www.androidhive.info/2013/07/how-to-implement-android-splash-screen-2/