Как скрыть строку заголовка для Activity в XML с существующей пользовательской темой - PullRequest
845 голосов
/ 07 апреля 2010

Я хочу скрыть заголовок для некоторых из моих действий. Проблема в том, что я применил стиль ко всем своим действиям, поэтому я не могу просто установить тему на @android:style/Theme.NoTitleBar.

Использование темы NoTitleBar в качестве родителя для моего стиля приведет к удалению строки заголовка из всех моих действий.

Можно ли где-нибудь установить элемент стиля без заголовка?

Ответы [ 35 ]

16 голосов
/ 29 января 2014

Добавить

<item name="android:windowNoTitle">true</item>

внутри AppTheme (styles.xml)

14 голосов
/ 27 декабря 2012

Просто используйте getActionBar().hide(); в своей основной деятельности onCreate() метод.

13 голосов
/ 02 июня 2016

Вам просто нужно изменить стиль AppTheme в Style.xml, если вы замените определение из DarkActionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

до NoActionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

AppTheme, определенный в AndroidManifast.xml

12 голосов
/ 22 декабря 2017

Для AppCompat у меня сработало следующее решение:

Добавьте новый стиль темы без панели действий в styles.xml и установите parent="Theme.AppCompat.NoActionBar".

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimary</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@color/colorPrimary</item>

</style>


Теперь реализуйте тот же стиль темы для вашей заставки в androidManifest.xml

<activity
        android:name=".ActivityName"
        android:theme="@style/SplashTheme"> // apply splash them here 

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

Вот результат:

enter image description here

11 голосов
/ 08 июня 2014

Вы можете использовать этот код в вашем Java-файле

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

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_main);
10 голосов
/ 13 октября 2016

Добавьте этот стиль в свой файл style.xml

 <style name="AppTheme.NoActionBar">
     <item name="windowActionBar">false</item>
     <item name="windowNoTitle">true</item>
 </style>

После этого добавьте это имя стиля в свой androidManifest.xml в виде черепа, в котором вы не хотите видеть заголовок заголовка, как показано ниже.

<activity android:name=".youractivityname"
     android:theme="@style/AppTheme.NoActionBar">
</activity>
10 голосов
/ 20 ноября 2012

В вашем onCreate методе используйте следующий фрагмент:

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
10 голосов
/ 14 декабря 2014

Добавьте оба из них для темы, которую вы используете:

    <item name="windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
7 голосов
/ 13 мая 2016

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

Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);

//Remove¡ing title bar
getSupportActionBar().setDisplayShowTitleEnabled(false);
7 голосов
/ 26 апреля 2013

Или, если вы хотите скрыть / показать строку заголовка в любой момент:

private void toggleFullscreen(boolean fullscreen)
{
    WindowManager.LayoutParams attrs = getWindow().getAttributes();
    if (fullscreen)
    {
        attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
    }
    else
    {
        attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
    }
    getWindow().setAttributes(attrs);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...