0

У меня проблема с изменением имени основной деятельности. Я хочу удалить его. В качестве первого метода я использовал this.getActionBar().setDisplayShowTitleEnabled(false);. Он работает, но до начала MainActivity title появляется, а затем исчезает. Это раздражает, поэтому я попытался отредактировать Manifest.xml, но появилась одна интересная проблема. Если я установил android:label="" как activity атрибут имя приложения dissapears! Как это могло случиться? Я устанавливаю android:label для application тег, но приложение не обращает на это внимание и принимает значение android:label от activity тег. Как я могу это исправить? Благодарим вас за чтение.Изменение названия основной деятельности

<application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:theme="@style/Theme.Example" 
     android:label="@string/app_name" 
     android:logo="@drawable/bobincut"> 
     <activity 
      android:label="" 
      android:name="com.example.bakumovies.MainActivity" 
      android:screenOrientation="portrait"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
+0

хорошо, что вы думаете, что произойдет? –

+0

не понял, что вы имеете в виду. Извините за плохой английский –

ответ

1

Вы можете сделать это двумя способами:

Простейшим является добавление в OnCreate вашей деятельности (в) строку:

requestWindowFeature(Window.FEATURE_NO_TITLE); 

Там также другое решение:

Добавьте эту тему в свои стили.xml:

<style name="NoTitleTheme" parent="@style/Theme.Example"> 
    <item name="android:windowNoTitle">true</item> 
</style> 

Затем установите эту тему в своей деятельности (обратите внимание андроида: тема теги я добавил здесь):

<activity 
     android:label="" 
     android:theme="@style/NoTitleTheme" 
     android:name="com.example.bakumovies.MainActivity" 
     android:screenOrientation="portrait"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
+0

после добавления этого ' true' к моему приложению 'theme' с ошибкой' NullPointer Exception' :( –

+0

Я выяснил, почему возникает исключение NullPointer Exception. Ваш метод фактически удаляет весь «ActionBar» вместо удаления только заголовка. –

+2

Извините, я думал, что вы тоже хотите скрыть панель действий. Таким образом, заголовок, который вы видите, является заголовком окна предварительного просмотра. Вы можете отключить его. чтобы прочитать следующее сообщение, которое разъясняет, как работают окна предварительного просмотра: http://cyrilmottier.com/2013/01/23/android-app-launching-made-gorgeous/ Если вы не хотите читать весь пост, добавьте ' true' к вашей теме. –

1

вы пробовали это в своей деятельности:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
+0

этот метод также вызовет задержку, потому что он выполняется после 'onCreate'. Это решение не решает мою проблему :( –

1

сделать новый стиль, который наследует от NoTitle стиля:

<style name="Theme.Splash" parent="@android:style/Theme.NoTitleBar.Fullscreen"> 
    <item name="android:windowBackground">@drawable/my_splash_logo</item> 
</style> 

сделать новый класс SplashActivity, который применяет стиль:

<activity 
    android:name="SplashActivity" 
    android:theme="@style/Theme.Splash" 
    android:label="@string/app_name" 
    android:icon="@drawable/icon"> 
    <intent-filter android:label="@string/app_name"> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

В вашем SplashActivity, начать свой реальный HomeActivity:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // possibly use CLEAR_TOP flag here 
    startActivity(new Intent(HomeActivity.class)); 
} 

public void onResume() { 
    super.onResume(); 
    Finish(); 
} 

Это будет иметь эффект подавления метки при запуске приложения, имя приложения будет отображаться в панели запуска и последние приложения, вы выиграли» t получить null ref из-за удаления ActionBar. Который, я думаю, удовлетворяет всем вашим критериям.

+0

Я пробовал, что это не работает.Если вы установите 'android: label =" "' и запускающее приложение, оно не появится в панели MultiTasking. –

+0

Я обновил свой ответ, чтобы использовать технику активности «всплеск». Дайте мне знать, если это сработает для вас. –

Смежные вопросы