Я могу скрыть панель действий в сотах, используя этот код:
getActionBar().hide();
Но когда открывается клавиатура и пользователь что-нибудь копирует, панель действий отображается снова. Как я могу отключить панель действий навсегда?
Я могу скрыть панель действий в сотах, используя этот код:
getActionBar().hide();
Но когда открывается клавиатура и пользователь что-нибудь копирует, панель действий отображается снова. Как я могу отключить панель действий навсегда?
Ответы:
Если вы используете Theme.Holo.Light
и хотите использовать Theme.Holo.Light.NoActionBar
вариант на устройствах до 3.2, вы можете добавить его в свой styles.xml
:
<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
а затем установите его в качестве темы своей деятельности:
<activity android:theme="@style/NoActionBar" ... />
<item name="android:windowFullscreen">true</item>
Установив тему активности в Manifest,
<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>
ActionBar
для меня это единственное, что полностью удаляет .
Я использую следующий код внутри своей функции onCreate:
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
Источник: https://developer.android.com/guide/topics/ui/actionbar.html
С созданным по умолчанию в Android Studio суперклассом Activity не работает ActionBarActivity
ни одно решение в других ответах. Чтобы решить, просто измените суперкласс:
public class xxxActivity extends ActionBarActivity{
кому:
public class xxxActivity extends Activity {
Если вы хотите получить полноэкранный режим без ActionBar и Title.
Добавьте его в 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"
Перейдите в styles.xml Измените этот DarkActionBar на NoActionBar
style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Лучший способ, который я нашел, который дает настраиваемые темы и не дает панели действий, - это создать SuperClass для всех действий в моем проекте и в нем onCreate () вызвать следующую строку кода:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
У меня всегда получается. Единственная проблема в этом подходе заключается в том, что вы увидите панель действий на долю секунды при запуске приложения (не действия, а всего приложения).
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
getSupportActionBar().hide();
}
Вы можете принудительно скрыть панель действий просто:
ActionBar actionbar = getSupportActionBar();
actionBar.hide();
Просто используйте тему по умолчанию.
Не используйте тему Holo, и панель действий исчезнет. Этот код работает для меня с API 8+ с поддержкой lib v7:
<style name="NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>
установите эту тему для своей деятельности:
<activity android:theme="@style/NoActionBar" ... />
и в вашем классе активности.
Он работает, даже когда расширяет ActionBarActivity.
Если вам просто нужна тема без панели действий, вы можете использовать вариант NoActionBar, например. если ваша базовая тема такая, как показано ниже
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
тогда вы можете использовать
<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
Но если вы хотите сохранить свойства своей основной темы, то есть AppTheme, вы можете сделать, как показано ниже
<style name="AppThemeNoActionBar" parent="AppTheme">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
Таким образом вы можете сохранить все свойства своей базовой темы, и вам не нужно явно добавлять их в тему NoActionBar :)
В разделе res -> values -> styles.xml
+ Изменить
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
Чтобы
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Ниже приведены шаги для постоянного скрытия панели действий:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
.Теперь замените родительскую тему любой другой темой, которая содержит «NoActionBar» в своем имени.
а. Вы также можете проверить, как выглядит тема, переключившись на вкладку дизайна в activity_main.xml, а затем попробовав каждую тему, представленную в раскрывающемся списке тем пользовательского интерфейса.
Если ваша MainActivity расширяет AppCompatActivity , убедитесь, что вы используете тему AppCompat.
Введите этот код в свой onCreate
метод перед setContentView
:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
Я хотел бы опубликовать подход дизайнера к этому, это позволит отделить дизайн от вашей бизнес-логики:
Шаг 1. Создайте новый стиль в (res-> values-> styles.xml): В основном это копия вашей общей схемы с другим родителем - parent = "Theme.AppCompat.Light.NoActionBar"
<!-- custom application theme. -->
<style name="MarkitTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowNoTitle">true</item>
</style>
Шаг 2: В вашем AndroidManifest.xml добавьте эту тему к желаемому действию: например, я хочу, чтобы мое основное действие было без панели действий, поэтому добавьте это, как показано ниже:
<activity android:name=".MainActivity"
android:theme="@style/MarkitTheme">
Это лучшее решение для меня после многих попыток.
Убедитесь, что вы создали новую тему, изменив имя темы по умолчанию в styles.xml
файле на:
<style name="MyTheme" parent="android:Theme.Material.Light.NoActionBar">
а затем измените тему из раскрывающегося под main_activity.xml
вашей темой на то, что вы назвали своей темой.
Еще одно интересное решение, когда вы хотите сохранить ViewPager при удалении панели действий, - это иметь стиль как показано
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowActionBarOverlay">true</item>
<item name="android:actionBarStyle">@style/NoActionBarStyle</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="NoActionBarStyle" parent="android:Widget.Holo.ActionBar">
<item name="android:backgroundSplit">@null</item>
<item name="android:displayOptions"></item>
</style>
Таким образом, большинство приложений Dialer в Android показывают ViewPager без панели действий.
Ссылка: https://github.com/CyanogenMod/android_packages_apps_Dialer
Используйте это в styles.xml
файле:
<style name="MyTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
Я использую это решение:
в манифесте внутри вашего тега активности:
android:label="@string/empty_string"
и в strings.xml:
<string name="empty_string">""</string>
Таким образом, вы сохраняете ActionBar (или Toolbar) с заголовком, но при создании Activity, заголовок автоматически становится пустым.
Как ни странно, у меня ничего из этого не сработало при сборке Nexus 7 под управлением 4.4.2 (API 19). По большей части, по крайней мере, в последней версии Android Studio (1.2.1.1) после создания пустого приложения активности:
android: theme = "@ style / AppTheme"
находится в элементе приложения, а не в элементе действия. Если я удалил указанный выше код или попытался изменить его на:
android: theme = "@ android: style / Theme.Holo.Light.NoActionBar"
приложение не запускается ... если это происходит с вами, просто зайдите в свой файл styles.xml (res> values> styles.xml) и добавьте .NoTitleBar в конец родительского элемента, как этот блок:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
Никаких изменений в файле AndroidManifest не требуется.
В вашем activity_main.xml
вы можете настроить оттуда в строке:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
.......
android:theme="@style/Theme.Design.Light.NoActionBar"
.......
">
Иногда, когда вы можете увидеть такие вещи, щелкните здесь , вы можете выбрать здесь тему «noActionBar».
Надеюсь, я вам помог.