Строка заголовка по умолчанию отображается до появления моей пользовательской строки заголовка
Я занимаюсь разработкой приложения для 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"/>