Мешайте названию приложения высветиться в строке заголовка

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

Я установил свою пользовательскую строку заголовка в моем основном виде деятельности здесь:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    setContentView(R.layout.main);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.mytitle);

mytitle.xml - то, где я установил свой текст:

<?xml version="1.0" encoding="utf-8"?>
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myTitle"
    android:text="my text"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearance"
    />

Мое образование строки заголовка не высвечивается, просто текст.

Спасибо.

9
задан Dominic 23 July 2010 в 03:04
поделиться

2 ответа

Основное объяснение: при запуске приложения, чтобы как можно быстрее реагировать на действия пользователя, Android сначала показывает окно "предварительного просмотра" приложения еще до того, как начнется его процесс. Для этого берется информация, имеющаяся в AndroidManifest.xml приложения, и создается окно, которое выглядит так, как выглядела бы пустая активность для него. Таким образом, вы должны установить тему в манифесте так, чтобы она как можно точнее соответствовала тому, как выглядит ваш реальный пользовательский интерфейс.

В случае с пользовательским заголовком вы мало что можете сделать, потому что то, как будет выглядеть заголовок, зависит от того, что на самом деле делает ваш код, а ни один из ваших кодов еще не запущен. Лучшее, что вы можете сделать, это использовать android:theme="@android:style/Theme.NoTitleBar", чтобы окно предварительного просмотра вообще не пыталось показать строку заголовка... конечно, в вашей деятельности вам нужно будет убрать это, вызвав setTheme(android.R.style.Theme), чтобы вернуться к теме по умолчанию.

Чтобы немного уточнить, где в AndroidManifest.xml это нужно разместить:

<application 
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar" >
11
ответ дан 4 December 2019 в 19:32
поделиться

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

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
  getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.mytitle);
  setContentView(R.layout.main);
0
ответ дан 4 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: