Я пытаюсь удалить / отключить ActionBar. Я попытался вставить в Манифест:
<activity
...
android:theme="@android:style/Theme.NoTitleBar"
</activity>
И это не работает. Он не удаляет ActionBar. Помогите, пожалуйста. Спасибо.
12 ответов
В вашем методе oncreate()
используйте это
getActionBar().hide();
Если ваш minSdkVersion
10 или ниже, используйте вместо этого:
getSupportActionBar().hide();
Навсегда скрыть панель действий из styles.xml Если вы хотите скрыть панель действий во всем приложении (действия, фрагменты) повсюду, вы можете просто перейти к res > values > styles.xml и изменить тему базового приложения, как указано ниже.
<resources>
<! - Base application theme. →
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<! - Customize your theme here. →
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
Скрыть панель действий для определенного действия:
Используйте это в onCreate(); Метод
Котлин:
supportActionBar?.hide()
Ява:
if (getSupportActionBar() != null) {
getSupportActionBar().hide();
}
Я нашел самый простой способ: если вы перейдете к своему файлу AndroidManifest.xml, вы увидите android:theme="@style/Theme.yourappnamehere"
, вы можете просто заменить его на android:theme="@style/Theme.AppCompat.Light.NoActionBar"
. Тада работала как мечта (ничего добавлять не надо)
У меня тоже была эта проблема. Я пошел в styles.xml
и изменил
parent="Theme.AppCompat.Light.DarkActionBar"
К
parent="Theme.AppCompat.Light.NoActionBar"
И это удалило его из всей моей деятельности.
Для студии android вы можете перейти в styles.xml и изменить
parent="Theme.AppCompat.Light.DarkActionBar"
К
parent="Theme.AppCompat.Light.NoActionBar"
А в Eclipse его можно изменить в файле манифеста
<activity
android:name="com.ExcellenceTech.webview.MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen" >
Вы скрываете панель действий разными способами.
1. панель действий скрыта через XML-файл манифеста (программирование не на Java), тогда простой способ - добавить следующий атрибут в тег Activity:
android:theme="@style/Theme.NoActionBar"
Если создается настраиваемая тема, удобно создать другой стиль, расширяющий настраиваемую тему.
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
Или
ActionBar actionBar = getActionBar(); OR getSupportActionBar();
actionBar.hide();
getSupportActionBar().hide();
or
getActionBar().hide();
В разделе AndroidManifest.xml и активности поместите этот код.
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
getActionBar().hide();
Или
getSupportActionBar().hide();
Но изменение может не отображаться в дизайне xml.
Вы можете использовать функцию hideUi()
, как показано ниже, и вызвать ее в методе onCreate()
:
private void hideUI() {
// Hide UI first
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.hide();
}
View mContentView = (findViewById(R.id.mainLayout));
// Delayed removal of status and navigation bar
if (Build.VERSION.SDK_INT >= 30) {
mContentView.getWindowInsetsController().hide(
WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars());
} else {
// Note that some of these constants are new as of API 16 (Jelly Bean)
// and API 19 (KitKat). It is safe to use them, as they are inlined
// at compile-time and do nothing on earlier devices.
mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
}
Вызовите hideUI()
в onCrete()
после setContentView()
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (getSupportActionBar() != null) {
getSupportActionBar().hide();
}
hideUI();
// ......
}
Я использовал следующие коды и работают для меня:
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.hide();
}
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
Вы можете попробовать это. Меня устраивает
Добавьте его в style.xml
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
И используйте стиль в manifest.xml.
android:theme="@style/AppTheme.NoActionBar"
getActionBar().hide();
Я думаю, это должно сработать.
Похожие вопросы
Связанные вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.
<item name="android:windowContentOverlay">@null</item>
в определение темы вашего приложения.getWindow().requestFeature(Window.FEATURE_ACTION_BAR); getSupportActionBar().hide();
getActionBar().hide();
???