Строка заголовка по умолчанию отображается до появления моей пользовательской строки заголовка

Я занимаюсь разработкой приложения для Android, и мне нужно использовать свою собственную строку заголовка с изображением и двумя кнопками. Дело в том, что сразу же, когда я запускаю свое приложение, за 1 или 2 секунды до того, как появляется моя пользовательская строка заголовка, появляется уродливая строка по умолчанию с отображенным "моим приложением". Минимальный целевой API - 15.

Все ответы, найденные при переполнении стека, не сработали или не смогли заставить его исчезнуть, но делали то же самое с моей пользовательской строкой заголовка.

Вот как я это называю из своей деятельности:

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>

Еще раз мой пользовательский заголовок работает правильно. Мне просто нужно быстро избавиться от отображаемого по умолчанию при запуске приложения. Большое спасибо!

2 ответа

Решение

Если я нашел решение для моей проблемы, воспользовавшись ссылкой Модге о заставке.

Это не решает проблему, но остается хорошим решением.

Я создал небольшую деятельность, отвечающую за заставку, чтобы белый экран не оставался слишком долгим. Затем этот всплеск перенаправить на мою основную деятельность.

Это также полезно в моем случае, так как я могу начать процесс подключения во время заставки. Вы можете следовать этому примеру: http://www.androidhive.info/2013/07/how-to-implement-android-splash-screen-2/

Если вы используете этот стиль, активность будет загружаться без панели действий

<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>

Затем в своей деятельности вы можете установить панель действий следующим образом:

@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"/>
Другие вопросы по тегам