Я хочу скрыть панель заголовка для некоторых моих действий. Проблема в том, что я применил стиль ко всем моим действиям, поэтому я не могу просто установить тему на @android:style/Theme.NoTitleBar
.
Использование темы NoTitleBar в качестве родительской для моего стиля удалит строку заголовка из всех моих действий.
Могу ли я где-нибудь установить элемент стиля без заголовка?
Сделайте это в методе onCreate()
.
//Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//set content view AFTER ABOVE sequence (to avoid crash)
this.setContentView(R.layout.your_layout_name_here);
this
относится к Activity
.
Вы можете изменить ваш AndroidManifest.xml
:
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
или использовать Android:тема=то"@Андроид:стиль/тема.Черный.NoTitleBar"` в случае, если вы не'т нужна активность полноэкранных.
Примечание: Если вы'вэ использовал 'по умолчанию' для просмотра раньше, вы, вероятно, следует также изменить родительский класс от AppCompatActivity
на деятельность
.
Теперь я сделал следующее.
Я объявил стиль, наследующий все от моего общего стиля, а затем отключил titleBar.
<style name="generalnotitle" parent="general">
<item name="android:windowNoTitle">true</item>
</style>
Теперь я могу установить этот стиль для каждого Activity, в котором я хочу скрыть строку заголовка, перезаписав общий стиль приложения и унаследовав все остальные сведения о стиле, что позволяет избежать дублирования в коде стиля.
Чтобы применить стиль к определенной активности, откройте AndroidManifest.xml
и добавьте следующий атрибут к тегу activity
;
<activity
android:theme="@style/generalnotitle">
Я Дон'т, как это.requestWindowFeature(окна.FEATURE_NO_TITLE);` потому что появляется в заголовке кратко, то исчезает.
Я также Дон'т, как `Android:тема=то"@Андроид:стиль/тема.NoTitleBar и" потому что я потерял все 3.0+ Холо изменения, что пользователи новых устройств уже привыкли к тому. Так я наткнулся на это решение.
В РЭС/значения папке создайте файл с именем styles.xml (если это не'т уже существуют). В этом файле следующий код:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.Default" parent="@android:style/Theme"></style>
<style name="Theme.NoTitle" parent="@android:style/Theme.NoTitleBar"></style>
<style name="Theme.FullScreen" parent="@android:style/Theme.NoTitleBar.Fullscreen"></style>
</resources>
Далее создадим в res/значения-В11 с другой styles.xml файл (еще раз это может уже существовать). В этом файле следующий код:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.Default" parent="@android:style/Theme.Holo"></style>
<style name="Theme.NoTitle" parent="@android:style/Theme.Holo.NoActionBar"></style>
<style name="Theme.FullScreen" parent="@android:style/Theme.Holo.NoActionBar.Fullscreen"></style>
</resources>
И если вы нацелились 4.0+, создать РЭС/значения-в14 папку с очередным styles.xml файл (да, это уже может быть там). В этом файле следующий код:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.Default" parent="@android:style/Theme.Holo.Light"></style>
<style name="Theme.NoTitle" parent="@android:style/Theme.Holo.Light.NoActionBar"></style>
<style name="Theme.FullScreen" parent="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"></style>
</resources>
Наконец, все эти файлы созданы, откройте свой AndroidManifiest.xml файл вы можете добавить код:
android:theme="@style/Theme.NoTitle"
по тегу активности активность требуется не название или тег приложения, если вы хотите применить для всего приложения.
Теперь ваши пользователи получат темы, связанные с их версией устройства с экрана вы хотите.
П. С. измените значение на Андроид:тема=то"@стиль/тема.Полноэкранный фильм"
будет иметь тот же эффект, но и снять панель уведомлений.
Заголовок может быть удален двумя способами, как указано на странице разработчика Android:
В файл manifest.xml`:
<приложения для Android:тема=то"@Андроид:стиль/тема.Черный.NoTitleBar" и>
<активность андроид:тема=то"@Андроид:стиль/тема.Черный.NoTitleBar" и>
правильный ответ, вероятно, не продлить ActionbarActivity, а просто продлить активность
если вы все еще используете активности верхней панели кажется, это работает:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide(); //<< this
setContentView(R.layout.activity_main);
}
кажется, это тоже работает:
styles.xml:
<style name="AppBaseTheme" parent="Theme.AppCompat.Light" >
<item name="android:windowNoTitle">true</item> <!-- //this -->
</style>
я мог бы сделать, как Скотт Биггз писал. этот вид работ. разве нет такой темы тут. я имею в виду настройки меню'ы прозрачный фон:
просто изменить
public class MainActivity extends ActionBarActivity {
деятельности или FragmentActivity
public class MainActivity extends Activity {
однако я мог бы сделать это выглядят достаточно хорошо, используя материал дизайн и не удалить в ActionBar: https://gist.github.com/shimondoodkin/86e56b3351b704a05e53
это на примере материала дизайн совместимость верхней панели стиль.
Если вы используете это.requestWindowFeature(окна.Пользователь FEATURE_NO_TITLE) будет по-прежнему быть в состоянии видеть в строке заголовка только на мгновение во время запуска анимации, когда действие начинается через метод
. Если вы используете @андроид:стиль/тема.Черный.NoTitleBar
, как показано ниже после заголовка выиграл'т быть показано во время запуска анимации.
<activity
android:name=".MainActivity"
android:label="My App"
android:theme="@android:style/Theme.Black.NoTitleBar"
android:screenOrientation="portrait">
выше примера, очевидно, будет переопределить существующие темы приложения, если у вас уже есть тема, то добавьте <название товара=на"Андроид:windowNoTitle" и>правда</п>
к нему.
что работает для меня:
1 - в styles.xml:
<style name="generalnotitle" parent="Theme.AppCompat.Light" >
<item name="android:windowNoTitle">true</item> <!-- //this -->
</style>
2 - в класс MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide(); //<< this
setContentView(R.layout.activity_main);
}
<активность андроид:имя=" по.В MainActivity и" Android:тема=то"@стиль/generalnotitle" и>
когда я пытался использовать все те высокие голосуют ответы мое приложение разбился. (я думаю, что это как-то связано с тем, что "@Андроид:стиль и"?)
Лучшим решением для меня стало использование следующие:
android:theme="@style/Theme.AppCompat.NoActionBar"
Больше нет заголовка / заголовка. Просто поместите его в в <назначение и GT;...< приложения и GT; " или " <активность и gt;...</активность>
в зависимости, если вы (Дон'т) в целом приложение или просто конкретного вида деятельности.
Просто используйте getActionBar().скрыть();
в onCreate ваша основная деятельность ()
метод.
Вам просто нужно изменить AppTheme стиль в Style.xml если вы замените определение от DarkActionBar`
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
в NoActionBar
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
в AppTheme определенными в AndroidManifast.xml
Для совместимости приложений`, следующее решение работает для меня:
Добавить новый стиль тема без панели действий в styles.xmlи
родитель="по теме.Совместимости приложений.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>
Вот результат:
Вы можете использовать этот код в ваш файл Java
добавьте эту строку, прежде чем вы установите или загрузите ваше мнение
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
В методе onCreate метод, использовать следующий фрагмент:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
Добавить обе эти темы можно использовать:
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
Добавить этот стиль к вашему файлу 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>
Я'м, используя опоры панели виджетов В7. Итак, для того, чтобы иметь возможность удалить или скрыть заголовок, мы должны написать это.
Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
//Remove¡ing title bar
getSupportActionBar().setDisplayShowTitleEnabled(false);
Или если вы хотите, чтобы скрыть/показать строку заголовка в любой момент:
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);
}