- синтаксис:
<activity android:allowEmbedded=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:autoRemoveFromRecents=["true" | "false"] android:banner="drawable resource" android:canDisplayOnRemoteDevices=["true" | "false"] android:clearTaskOnLaunch=["true" | "false"] android:colorMode=[ "hdr" | "wideColorGamut"] android:configChanges=["colorMode", "density", "fontScale", "fontWeightAdjustment", "grammaticalGender", "keyboard", "keyboardHidden", "layoutDirection", "locale", "mcc", "mnc", "navigation", "orientation", "screenLayout", "screenSize", "smallestScreenSize", "touchscreen", "uiMode"] android:directBootAware=["true" | "false"] android:documentLaunchMode=["intoExisting" | "always" | "none" | "never"] android:enabled=["true" | "false"] android:enableOnBackInvokedCallback=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:immersive=["true" | "false"] android:label="string resource" android:launchMode=["standard" | "singleTop" | "singleTask" | "singleInstance" | "singleInstancePerTask"] android:lockTaskMode=["normal" | "never" | "if_whitelisted" | "always"] android:maxRecents="integer" android:maxAspectRatio="float" android:minAspectRatio="float" android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:parentActivityName="string" android:persistableMode=["persistRootOnly" | "persistAcrossReboots" | "persistNever"] android:permission="string" android:process="string" android:relinquishTaskIdentity=["true" | "false"] android:requireContentUriPermissionFromCaller=["none" | "read" | "readAndWrite" | "readOrWrite" | "write"] android:resizeableActivity=["true" | "false"] android:screenOrientation=["unspecified" | "behind" | "landscape" | "portrait" | "reverseLandscape" | "reversePortrait" | "sensorLandscape" | "sensorPortrait" | "userLandscape" | "userPortrait" | "sensor" | "fullSensor" | "nosensor" | "user" | "fullUser" | "locked"] android:showForAllUsers=["true" | "false"] android:stateNotNeeded=["true" | "false"] android:supportsPictureInPicture=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "stateVisible", "stateAlwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] > ... </activity>
- содержится в:
-
<application>
- может содержать:
-
<intent-filter>
<meta-data>
<layout>
- описание:
- Объявляет активность (подкласс
Activity
), которая реализует часть визуального пользовательского интерфейса приложения. Все активности должны быть представлены элементами<activity>
в файле манифеста. Любые, которые там не объявлены, не видны системе и никогда не запускаются. - Атрибуты:
-
android:allowEmbedded
Указывает, что активность может быть запущена как встроенный дочерний элемент другой активности, особенно в случае, когда дочерний элемент находится в контейнере, таком как
Display
, принадлежащий другой активности. Например, активности, которые используются для пользовательских уведомлений Wear, объявляют это, чтобы Wear мог отображать активность в своем потоке контекста, который находится в другом процессе.Значение этого атрибута по умолчанию —
false
.-
android:allowTaskReparenting
- Может ли активность переместиться с задачи, с которой она началась, на задачу, к которой она имеет сродство, когда эта задача будет выведена на передний план. Это
"true"
если она может переместиться, и"false"
если она остается с задачей, с которой она началась.Если этот атрибут не установлен, к действию применяется значение, установленное соответствующим атрибутом
allowTaskReparenting
элемента<application>
. Значение по умолчанию —"false"
.Обычно, когда действие запускается, оно связывается с задачей действия, которое его запустило, и остается там на протяжении всего своего жизненного цикла. Вы можете использовать этот атрибут, чтобы принудительно переназначить его на задачу, к которой оно имеет сродство, когда его текущая задача больше не отображается. Обычно это используется, чтобы заставить действия приложения переместиться на главную задачу, связанную с этим приложением.
Например, если сообщение электронной почты содержит ссылку на веб-страницу, нажатие на ссылку вызывает действие, которое может отобразить страницу. Это действие определяется приложением браузера, но запускается как часть задачи электронной почты. Если оно переподчинено задаче браузера, оно отображается, когда браузер в следующий раз выходит на передний план, и отсутствует, когда задача электронной почты снова выходит вперед.
Сродство действия определяется атрибутом
taskAffinity
. Сродство задачи определяется путем считывания сродства ее корневого действия. Поэтому, по определению, корневое действие всегда находится в задаче с тем же сродством. Поскольку действия с режимами запуска"singleTask"
или"singleInstance"
могут быть только в корне задачи, переродительство ограничено режимами"standard"
и"singleTop"
. (См. также атрибутlaunchMode
.) -
android:alwaysRetainTaskState
- Всегда ли состояние задачи, в которой находится действие, поддерживается системой.
"true"
, если это так, и"false"
, если система может сбросить задачу в начальное состояние в определенных ситуациях. Значение по умолчанию -"false"
. Этот атрибут имеет смысл только для корневого действия задачи. Он игнорируется для всех остальных действий.Обычно система очищает задачу, удаляя все действия из стека выше корневого действия, в определенных ситуациях, когда пользователь повторно выбирает эту задачу с домашнего экрана. Обычно это делается, если пользователь не посещал задачу в течение определенного времени, например 30 минут.
Однако, когда этот атрибут равен
"true"
, пользователи всегда возвращаются к задаче в ее последнем состоянии, независимо от того, как они туда попали. Это полезно в приложении, таком как веб-браузер, где есть много состояний, например, несколько открытых вкладок, которые пользователи не хотят терять. -
android:autoRemoveFromRecents
- Остаются ли задачи, запущенные действием с этим атрибутом, на экране «Недавние» до тех пор, пока не завершится последнее действие в задаче. Если
true
, задача автоматически удаляется с экрана «Недавние». Это переопределяет использование вызывающимFLAG_ACTIVITY_RETAIN_IN_RECENTS
. Это должно быть логическое значение, либо"true"
, либо"false"
. -
android:banner
- Рисуемый ресурс, предоставляющий расширенный графический баннер для связанного с ним элемента. Используйте с тегом
<activity>
для предоставления баннера по умолчанию для определенной активности или с тегом<application>
для предоставления баннера для всех активностей приложения.Система использует баннер для представления приложения на главном экране Android TV. Поскольку баннер отображается только на главном экране, он указывается только приложениями с активностью, которая обрабатывает намерение
CATEGORY_LEANBACK_LAUNCHER
.Этот атрибут задается как ссылка на ресурс для рисования, содержащий изображение, например
"@drawable/banner"
. Баннера по умолчанию нет.Дополнительную информацию см. в разделе «Отображение баннера на главном экране» в статье «Начало работы с телевизионными приложениями».
-
android:canDisplayOnRemoteDevices
Указывает, может ли активность отображаться на удаленном устройстве, которое может работать под управлением Android или нет. Это должно быть логическое значение, либо
"true"
или"false"
.Значение этого атрибута по умолчанию —
"true"
.-
android:clearTaskOnLaunch
- Удаляются ли все действия из задачи, за исключением корневого действия, при ее повторном запуске с домашнего экрана.
"true"
, если задача всегда убирается до своего корневого действия, и"false"
если нет. Значение по умолчанию —"false"
. Этот атрибут имеет смысл только для действий, которые запускают новую задачу — корневое действие. Он игнорируется для всех других действий в задаче.Если значение равно
"true"
, каждый раз, когда пользователи запускают задачу, они попадают в ее корневую активность независимо от того, что они делали в последней задаче, и независимо от того, использовали ли они кнопку "Назад" или "Домой", чтобы выйти из нее. Если значение равно"false"
, задача может быть очищена от активности в некоторых ситуациях, но не всегда. Для получения дополнительной информации см. атрибутalwaysRetainTaskState
.Предположим, что пользователь запускает действие P с главного экрана, а оттуда переходит к действию Q. Затем пользователь нажимает «Домой», а затем возвращается к действию P. Обычно пользователь видит действие Q, поскольку это то, что он делал последним в задаче P. Однако, если P устанавливает этот флаг в
"true"
, все действия поверх него — в данном случае Q — удаляются, когда пользователь запускает действие P с главного экрана. Таким образом, пользователь видит только P при возвращении к задаче.Если этот атрибут и
allowTaskReparenting
оба равны"true"
, любые действия, которые могут быть повторно родительскими, перемещаются в задачу, с которой они имеют общую связь. Оставшиеся действия затем удаляются.Этот атрибут игнорируется, если
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
не установлен. -
android:colorMode
Указывает цветовой режим активности. Если указано, может быть
hdr
илиwideColorGamut
.Если
hdr
, запрашивает отображение активности в высоком динамическом диапазоне, если устройство его поддерживает.Если
wideColorGamut
, запрашивает отображение активности в режиме широкой цветовой гаммы на совместимых устройствах. В режиме широкой цветовой гаммы окно может отображаться за пределами гаммыSRGB
для отображения более ярких цветов. Если устройство не поддерживает рендеринг широкой цветовой гаммы, этот атрибут не имеет никакого эффекта. Для получения дополнительной информации о рендеринге в режиме широкой цветовой гаммы см. Улучшение графики с помощью содержимого с широкой цветовой гаммой .-
android:configChanges
- Перечисляет изменения конфигурации, которые действие обрабатывает само. Когда изменение конфигурации происходит во время выполнения, действие завершается и перезапускается по умолчанию, но объявление конфигурации с этим атрибутом предотвращает перезапуск действия. Вместо этого действие остается запущенным, и вызывается его метод
onConfigurationChanged()
.Примечание: Используйте этот атрибут только в особых случаях для улучшения производительности и отзывчивости приложения. Для получения дополнительной информации см. Обработка изменений конфигурации .
Следующие строки являются допустимыми значениями для этого атрибута. Несколько значений разделяются символом
|
, например"locale|navigation|orientation"
.Ценить Описание "colorMode"
Изменились возможности цветового режима экрана (цветовая гамма или динамический диапазон).
Примечание: Цветовой режим, запрашиваемый активностью с атрибутом
colorMode
или во время выполнения, отличается от возможности для различных цветовых режимов. Активность, изменяющая используемый ею цветовой режим, не приводит к изменению конфигурации, поскольку цветовые возможности дисплея не изменились."density"
Изменение плотности отображения, например, когда пользователь указывает другой масштаб отображения или другой дисплей, теперь активно.
Добавлено в API уровня 24 .
"fontScale"
Изменение коэффициента масштабирования шрифта, например, когда пользователь выбирает новый глобальный размер шрифта. "fontWeightAdjustment"
Изменилась величина увеличения насыщенности шрифта. "grammaticalGender"
Грамматический род языка изменился. См. GrammaticalInflectionManager
.Добавлено в API уровня 34 .
"keyboard"
Изменение типа клавиатуры, например, когда пользователь подключает внешнюю клавиатуру. "keyboardHidden"
Изменение доступности клавиатуры, например, когда пользователь раскрывает аппаратную клавиатуру. "layoutDirection"
Изменение направления макета, например, с слева направо (LTR) на справа налево (RTL).
Добавлено в API уровня 17 .
"locale"
Изменение локали, например, когда пользователь выбирает новый язык, на котором отображается текст. "mcc"
Изменение мобильного кода страны IMSI (MCC) при обнаружении SIM-карты, обновляющей MCC. "mnc"
Изменение кода мобильной сети IMSI (MNC) при обнаружении SIM-карты, обновляющей MNC. "navigation"
TA изменить тип навигации (трекбол или D-pad). Обычно этого не происходит. "orientation"
Изменение ориентации экрана, например, когда пользователь поворачивает устройство.
Примечание: Если ваше приложение предназначено для Android 3.2 (уровень API 13) или выше, также объявите конфигурации
"screenLayout"
и"screenSize"
, поскольку макет экрана и размер экрана могут меняться при переключении устройства между книжной и альбомной ориентацией."screenLayout"
Изменение компоновки экрана, например, когда активным становится другой дисплей. "screenSize"
Изменение текущего доступного размера экрана.
Это представляет собой изменение текущего доступного размера относительно текущего соотношения сторон, поэтому он меняется, когда пользователь переключается между альбомной и портретной ориентацией.
Добавлено в API уровня 13 .
"smallestScreenSize"
Изменение физического размера экрана.
Это представляет собой изменение размера независимо от ориентации, поэтому оно изменяется только при изменении фактического физического размера экрана, например, при переключении на внешний дисплей. Изменение этой конфигурации соответствует изменению конфигурации
smallestWidth
.Добавлено в API уровня 13 .
"touchscreen"
Изменение сенсорного экрана. Обычно этого не происходит. "uiMode"
Изменение режима пользовательского интерфейса, например, когда пользователь помещает устройство на стол или в автомобильную док-станцию, или меняется ночной режим. Для получения дополнительной информации о различных режимах пользовательского интерфейса см. UiModeManager
.Добавлено в API уровня 8 .
Все эти изменения конфигурации могут повлиять на значения ресурсов, видимые приложением. Поэтому при вызове
onConfigurationChanged()
обычно необходимо снова извлечь все ресурсы, включая макеты представлений и чертежи, чтобы правильно обработать изменение.Примечание: Для обработки изменений конфигурации, связанных с многооконностью , используйте и
"screenLayout"
, и"smallestScreenSize"
. Многооконность поддерживается в Android 7.0 (API уровня 24) или выше. -
android:directBootAware
Поддерживает ли действие Direct-Boot , то есть может ли оно быть запущено до того, как пользователь разблокирует устройство.
Примечание: Во время прямой загрузки действие в вашем приложении может получить доступ только к тем данным, которые хранятся в защищенном хранилище устройства .
Значение по умолчанию —
"false"
.-
android:documentLaunchMode
- Указывает, как новый экземпляр действия добавляется к задаче каждый раз при ее запуске. Этот атрибут позволяет пользователю отображать несколько документов из одного и того же приложения на экране «Недавние» .
Этот атрибут имеет четыре значения, которые производят следующие эффекты, когда пользователь открывает документ в приложении:
Ценить Описание "intoExisting"
Система ищет задачу, ComponentName
и URI базового намерения которой совпадают с таковыми у запускающего намерения. Если система находит такую задачу, она очищает ее и перезапускается, при этом корневая активность получает вызовonNewIntent(android.content.Intent)
. Если система не находит такую задачу, она создает новую задачу."always"
Активность создает новую задачу для документа, даже если документ уже открыт. Это то же самое, что и установка флагов FLAG_ACTIVITY_NEW_DOCUMENT
иFLAG_ACTIVITY_MULTIPLE_TASK
."none"
Действие не создает новую задачу для действия. Это значение по умолчанию, которое создает новую задачу только при установке FLAG_ACTIVITY_NEW_TASK
. Экран «Недавние» обрабатывает действие так, как это происходит по умолчанию: он отображает одну задачу для приложения, которая возобновляется с любого действия, которое пользователь вызвал в последний раз."never"
Действие не запускается в новом документе, даже если намерение содержит FLAG_ACTIVITY_NEW_DOCUMENT
. Установка этого параметра переопределяет поведение флаговFLAG_ACTIVITY_NEW_DOCUMENT
иFLAG_ACTIVITY_MULTIPLE_TASK
, если любой из них установлен в действии, а на экране «Недавние» отображается одна задача для приложения, которая возобновляется с любого действия, которое пользователь вызвал в последний раз.Примечание: Для значений, отличных от
"none"
и"never"
, активность определяется с помощьюlaunchMode="standard"
. Если этот атрибут не указан, используетсяdocumentLaunchMode="none"
. -
android:enabled
- Может ли система создать экземпляр действия. Если это возможно, то это
"true"
, а если нет,"false"
. Значение по умолчанию —"true"
.Элемент
<application>
имеет собственный атрибутenabled
, который применяется ко всем компонентам приложения, включая действия. Атрибуты<application>
и<activity>
должны быть оба"true"
, поскольку они оба по умолчанию, чтобы система могла создать экземпляр действия. Если любой из них"false"
, его нельзя создать. -
android:enableOnBackInvokedCallback
Этот флаг позволяет отказаться от предиктивной системной анимации на уровне активности.
Установите
android:enableOnBackInvokedCallback=false
, чтобы отключить предиктивную обратную анимацию на уровне активности и указать системе игнорировать вызовы API платформыOnBackInvokedCallback
.-
android:excludeFromRecents
Исключена ли задача, инициированная этой активностью, из экрана «Недавние» . То есть, когда эта активность является корневой активностью новой задачи, этот атрибут определяет, отображается ли задача в списке недавних приложений. Он
"true"
, если задача исключена из списка;"false"
, если она включена . Значение по умолчанию —"false"
.-
android:exported
Может ли активность быть запущена компонентами других приложений:
- Если
"true"
, активность доступна любому приложению и может быть запущена по точному имени класса. - Если
"false"
, активность может быть запущена только компонентами того же приложения, приложениями с тем же идентификатором пользователя или привилегированными системными компонентами. Это значение по умолчанию, когда нет фильтров намерений.
Если активность в вашем приложении включает фильтры намерений, установите этот элемент на
"true"
чтобы другие приложения могли его запустить. Например, если активность является основной активностью приложения и включаетcategory
android.intent.category.LAUNCHER
.Если этот элемент имеет значение
"false"
и приложение пытается запустить активность, система выдает исключениеActivityNotFoundException
.Этот атрибут — не единственный способ ограничить воздействие активности на другие приложения. Разрешения также используются для ограничения внешних сущностей, которые могут вызывать активность. См. атрибут
permission
.- Если
-
android:finishOnTaskLaunch
- Будет ли завершен существующий экземпляр активности, за исключением корневой активности, когда пользователь повторно запускает свою задачу, выбрав задачу на главном экране. Значение
"true"
, если он завершен, и"false"
если нет. Значение по умолчанию -"false"
.Если этот атрибут и
allowTaskReparenting
оба"true"
, этот атрибут перевешивает другой. Сродство активности игнорируется. Активность не переродительствуется, а уничтожается.Этот атрибут игнорируется, если
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
не установлен. -
android:hardwareAccelerated
- Включена ли аппаратная отрисовка для этой активности.
"true"
, если включена, и"false"
если нет. Значение по умолчанию -"false"
.На Android 3.0 и выше приложениям доступен аппаратно-ускоренный рендерер OpenGL для повышения производительности многих распространенных операций с 2D-графикой. Когда включен аппаратно-ускоренный рендерер, большинство операций в Canvas, Paint, Xfermode, ColorFilter, Shader и Camera ускоряются.
Это приводит к более плавной анимации, более плавной прокрутке и улучшенной отзывчивости в целом, даже для приложений, которые явно не используют библиотеки OpenGL фреймворка. Из-за возросших ресурсов, необходимых для включения аппаратного ускорения, ваше приложение потребляет больше оперативной памяти.
Не все операции OpenGL 2D ускорены. Если вы включаете аппаратно-ускоренный рендерер, проверьте, может ли ваше приложение использовать рендерер без ошибок.
-
android:icon
Значок, представляющий активность. Значок отображается пользователям, когда требуется представление активности на экране. Например, значки для активностей, которые инициируют задачи, отображаются в окне запуска. Значок часто сопровождается меткой; для получения информации о метке см. атрибут
android:label
.Этот атрибут задается как ссылка на ресурс для рисования, содержащий определение изображения. Если он не задан, вместо него используется значок, указанный для всего приложения. Для получения дополнительной информации см. атрибут
icon
элемента<application>
.Значок действия, установленный здесь или элементом
<application>
, также является значком по умолчанию для всех фильтров намерений действия. Для получения дополнительной информации см. атрибутicon
элемента<intent-filter>
.-
android:immersive
- Устанавливает настройку режима погружения для текущей активности. Если это
"true"
, членActivityInfo.flags
всегда имеет установленный битFLAG_IMMERSIVE
, даже если режим погружения изменяется во время выполнения с помощью методаsetImmersive()
. -
android:label
Читаемая пользователем метка для действия. Метка отображается на экране, когда действие представлено пользователю. Она часто отображается вместе со значком действия. Если этот атрибут не установлен, вместо него используется метка, установленная для приложения в целом. см. атрибут
label
элемента<application>
.Метка действия, заданная здесь или элементом
<application>
, также является меткой по умолчанию для всех фильтров намерений действия. Для получения дополнительной информации см. атрибутlabel
элемента<intent-filter>
.Метка устанавливается как ссылка на строковый ресурс, чтобы ее можно было локализовать, как и другие строки в пользовательском интерфейсе. Однако для удобства при разработке приложения ее также можно установить как необработанную строку.
-
android:launchMode
Инструкция о том, как запускается активность. Существует пять режимов, которые работают в сочетании с флагами активности (константы
FLAG_ACTIVITY_*
) в объектахIntent
, чтобы определить, что происходит, когда активность вызывается для обработки намерения:"standard"
"singleTop"
"singleTask"
"singleInstance"
"singleInstancePerTask"
Режим по умолчанию —
"standard"
.Как показано в следующей таблице, режимы делятся на две основные группы: с одной стороны — действия
"standard"
и"singleTop"
, а с другой — действия"singleTask"
,"singleInstance"
и"singleInstancePerTask"
. Действие с режимом запуска"standard"
или"singleTop"
может быть создано несколько раз.Экземпляры могут принадлежать любой задаче и могут располагаться в любом месте задачи активности. Обычно они запускаются в задачу, вызвавшую
startActivity()
, если только объектIntent
не содержит инструкциюFLAG_ACTIVITY_NEW_TASK
, в этом случае выбирается другая задача. Для получения дополнительной информации см. атрибутtaskAffinity
.Напротив, действия
"singleTask"
,"singleInstance"
и"singleInstancePerTask"
имеют разное поведение."singleInstancePerTask"
всегда находится в корне задачи действия. Кроме того, устройство может содержать только один экземпляр действия"singleInstance"
за раз, в то время как действие"singleInstancePerTask
может быть создано несколько раз в разных задачах, если установленFLAG_ACTIVITY_MULTIPLE_TASK
илиFLAG_ACTIVITY_NEW_DOCUMENT
.Активность с режимом запуска
"singleTask"
объединяет поведение"singleInstance"
и"singleInstancePerTask"
: активность может быть создана несколько раз и может быть расположена в любом месте задачи того жеtaskAffinity
. Но устройство может удерживать только одну задачу для нахождения активности"singleTask"
в корне задачи активности.Режимы
"standard"
и"singleTop"
отличаются друг от друга в одном отношении: каждый раз, когда появляется новое намерение для"standard"
activity, создается новый экземпляр класса для ответа на это намерение. Каждый экземпляр обрабатывает одно намерение. Аналогично, новый экземпляр"singleTop"
activity также может быть создан для обработки нового намерения.Однако, если целевая задача уже имеет существующий экземпляр активности наверху своего стека, этот экземпляр получает новое намерение в вызове
onNewIntent()
. Новый экземпляр не создается. В противном случае — если существующий экземпляр активности"singleTop"
находится в целевой задаче, но не наверху стека, или если он находится наверху стека, но не в целевой задаче — новый экземпляр создается и помещается в стек.Аналогично, если пользователь переходит к активности в текущем стеке, поведение определяется режимом запуска родительской активности. Если родительская активность имеет режим запуска
singleTop
(или намерениеup
содержитFLAG_ACTIVITY_CLEAR_TOP
), родитель переносится на вершину стека, и его состояние сохраняется.Навигационное намерение принимается методом
onNewIntent()
родительской активности. Если родительская активность имеет режим запускаstandard
, а намерениеup
не содержитFLAG_ACTIVITY_CLEAR_TOP
, текущая активность и ее родительская активность выталкиваются из стека, и создается новый экземпляр родительской активности для получения навигационного намерения.Режим
"singleInstance"
также отличается от"singleTask"
и"singleInstancePerTask"
только в одном отношении: действие с режимом запуска"singleTask"
или"singleInstancePerTask"
позволяет другим действиям, обязательно"standard"
и"singleTop"
, быть частью своей задачи.С другой стороны, действие
"singleInstance"
не позволяет никаким другим действиям быть частью своей задачи. Это должно быть единственное действие в задаче. Если оно запускает другое действие, это действие назначается другой задаче, как если быFLAG_ACTIVITY_NEW_TASK
был в намерении.Варианты использования Режим запуска Несколько экземпляров? Комментарии Обычные запуски для большинства видов деятельности "standard"
Да По умолчанию. Система всегда создает новый экземпляр активности в целевой задаче и направляет намерение на него. "singleTop"
Условно Если экземпляр действия уже существует в верхней части целевой задачи, система направляет намерение этому экземпляру через вызов его метода onNewIntent()
, а не создает новый экземпляр действия.Специализированные запуски
(не рекомендуется для общего использования)"singleTask"
Условно Система создает активность в корне новой задачи или находит активность в существующей задаче с тем же сродством. Если экземпляр активности уже существует и находится в корне задачи, система направляет намерение существующему экземпляру через вызов его метода onNewIntent()
, а не создает новый."singleInstance"
Нет То же, что и "singleTask"
, за исключением того, что система не запускает никаких других действий в задачу, содержащую экземпляр. Действие всегда является единственным членом своей задачи."singleInstancePerTask"
Условно Активность может выполняться только как корневая активность задачи, первая активность, которая создала задачу, и поэтому в задаче есть только один экземпляр этой активности. Однако активность может быть инстанциирована несколько раз в разных задачах. Как показано в предыдущей таблице,
"standard"
является режимом по умолчанию и подходит для большинства типов действий."singleTop"
также является распространенным и полезным режимом запуска для многих типов действий. Другие режимы,"singleTask"
,"singleInstance"
и"singleInstancePerTask"
, не подходят для большинства приложений. Они приводят к модели взаимодействия, которая, вероятно, будет незнакома пользователям и сильно отличается от большинства других приложений.Независимо от выбранного вами режима запуска обязательно проверьте удобство использования действия во время запуска и при возврате к нему из других действий и задач с помощью кнопки «Назад».
Дополнительную информацию о режимах запуска и их взаимодействии с флагами
Intent
см. в разделе Задачи и стек возврата .-
android:lockTaskMode
- Определяет, как система представляет эту активность, когда устройство работает в режиме задачи блокировки .
Android может запускать задачи в захватывающем, похожем на киоск режиме, который называется режимом блокировки задач. Когда система работает в режиме блокировки задач, пользователи устройств обычно не могут видеть уведомления, получать доступ к неразрешенным приложениям или возвращаться на главный экран, если только приложение Home не включено в разрешенный список.
Только приложения, которые разрешены контроллером политики устройства (DPC), могут работать, когда система находится в режиме задачи блокировки. Однако системные и привилегированные приложения могут работать в режиме задачи блокировки, не будучи разрешенными.
Значением может быть любое из следующих строковых значений
R.attr.lockTaskMode
:Ценить Описание "normal"
Значение по умолчанию. Это значение по умолчанию. Задачи не запускаются в режиме блокировки задач, но могут быть помещены туда с помощью вызова startLockTask()
."never"
Задачи не запускаются в режиме
lockTask
, и пользователь устройства не может закрепить эти задачи на экране «Недавние».Примечание: Этот режим доступен только для системных и привилегированных приложений. Непривилегированные приложения с этим значением рассматриваются как
normal
."if_whitelisted"
Если DPC авторизует этот пакет с помощью DevicePolicyManager.setLockTaskPackages()
, то этот режим идентиченalways
, за исключением того, что активность должна вызватьstopLockTask()
перед тем, как сможет завершиться, если это последняя заблокированная задача. Если DPC не авторизует этот пакет, то этот режим идентиченnormal
."always"
Задачи, укорененные в этой активности, всегда запускаются в режиме блокировки задач. Если система уже находится в режиме блокировки задач при запуске этой задачи, то новая задача запускается поверх текущей задачи. Задачи, запущенные в этом режиме, могут выйти из режима блокировки задач, вызвав
finish()
.Примечание: Этот режим доступен только для системных и привилегированных приложений. Непривилегированные приложения с этим значением рассматриваются как
normal
.Этот атрибут был введен в API уровня 23.
-
android:maxRecents
- Максимальное количество задач, связанных с этой активностью на экране «Недавние» . Когда достигается это количество записей, система удаляет наименее недавно использованный экземпляр с экрана «Недавние». Допустимые значения — целые числа от 1 до 50 или от 1 до 25 на устройствах с малым объемом памяти. Ноль недопустим. Значение по умолчанию — 16.
-
android:maxAspectRatio
Максимальное соотношение сторон, поддерживаемое действием.
Если приложение работает на устройстве с более широким соотношением сторон, система автоматически сворачивает приложение, оставляя части экрана неиспользованными, чтобы приложение могло работать с указанным максимальным соотношением сторон.
Максимальное соотношение сторон выражается как десятичная форма частного длинного измерения устройства, деленного на его короткое измерение. Например, если максимальное соотношение сторон составляет 7:3, установите значение этого атрибута равным 2,33.
На не носимых устройствах значение этого атрибута должно быть 1,33 или больше. На носимых устройствах оно должно быть 1,0 или больше. В противном случае система игнорирует установленное значение.
Более подробную информацию об этом атрибуте см. в разделе R.attr.maxAspectRatio .
-
android:minAspectRatio
Минимальное соотношение сторон, поддерживаемое действием.
Если приложение работает на устройстве с более узким соотношением сторон, система автоматически сворачивает приложение, оставляя части экрана неиспользованными, чтобы приложение могло работать с указанным минимальным соотношением сторон.
Минимальное соотношение сторон выражается как десятичная форма частного от деления большего размера устройства на его меньший размер. Например, если соотношение сторон дисплея составляет 4:3, установите минимальное значение соотношения сторон на 1,33.
Значение должно быть больше или равно 1,0, в противном случае система проигнорирует установленное значение.
Более подробную информацию об этом атрибуте см. в разделе R.attr.minAspectRatio .
-
android:multiprocess
- Может ли экземпляр активности быть запущен в процессе компонента, который его запустил. Значение
"true"
, если может, и"false"
если нет. Значение по умолчанию"false"
.Обычно новый экземпляр активности запускается в процессе приложения, которое его определило, поэтому все экземпляры активности запускаются в одном и том же процессе. Однако, если этот флаг установлен в значение
"true"
, экземпляры активности могут запускаться в нескольких процессах, позволяя системе создавать экземпляры везде, где они используются, при условии, что разрешения позволяют это — то, что почти никогда не является необходимым или желательным. -
android:name
- Имя класса, реализующего действие, подкласс
Activity
. Значение атрибута обычно представляет собой полное имя класса, например,"com.example.project.ExtracurricularActivity"
. Однако, в качестве сокращения, если первым символом имени является точка, например,".ExtracurricularActivity"
, оно добавляется к пространству имен, указанному в файлеbuild.gradle
.После публикации приложения не меняйте это имя , если только вы не установили
android:exported ="false"
. Значения по умолчанию нет. Имя должно быть указано. -
android:noHistory
- Удаляется ли действие из стека действий и завершается ли оно, вызывая его метод
finish()
, когда пользователь уходит от него и оно больше не отображается на экране. Значение"true"
если оно завершено, и"false"
если нет. Значение по умолчанию -"false"
.Значение
"true"
означает, что активность не оставляет исторического следа. Она не остается в стеке активности для задачи, поэтому пользователь не может вернуться к ней. В этом случаеonActivityResult()
никогда не вызывается, если вы запускаете другую активность для результата из этой активности.Этот атрибут был введен в API уровня 3.
-
android:parentActivityName
- Имя класса логического родителя активности. Имя здесь должно совпадать с именем класса, указанным в атрибуте
android:name
соответствующего элемента<activity>
.Система считывает этот атрибут, чтобы определить, какую активность запустить, когда пользователь нажимает кнопку «Вверх» на панели действий. Система также может использовать эту информацию для синтеза обратного стека активностей с помощью
TaskStackBuilder
.Для поддержки уровней API 4–16 вы также можете объявить родительскую активность с помощью элемента
<meta-data>
, который указывает значение для"android.support.PARENT_ACTIVITY"
:<activity android:name="com.example.app.ChildActivity" android:label="@string/title_child_activity" android:parentActivityName="com.example.app.MainActivity" > <!-- Parent activity meta-data to support API level 4+ --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.app.MainActivity" /> </activity>
Дополнительную информацию об объявлении родительской активности для поддержки навигации вверх см. в разделе Обеспечение навигации вверх .
Этот атрибут был введен в API уровня 16.
-
android:persistableMode
Определяет, как экземпляр деятельности сохраняется в пределах содержащейся задачи через перезапуск устройства.
Если корневая деятельность задачи устанавливает значение этого атрибута в
persistRootOnly
, то сохраняется только корневая деятельность. В противном случае рассматриваются действия, которые выше, выполняются задним стеком задачи; Любое из этих видов деятельности, которые устанавливают ценность этого атрибута наpersistAcrossReboots
сохраняется.Если вы используете этот атрибут, вы должны установить его значение на одно из следующих:
Ценить Описание persistRootOnly
Значение по умолчанию. Когда система перезапускается, задача активности сохраняется, но используется только намерение запуска корневой деятельности.
Когда намерение вашего приложения загружает корневую активность вашего приложения, деятельность не получает
PersistableBundle
. Поэтому не используйтеonSaveInstanceState()
чтобы сохранить состояние корневой активности вашего приложения через перезапуск устройства.Примечание. Это значение атрибута влияет на поведение вашего приложения, только если оно установлено на корневую активность вашего приложения.
persistAcrossReboots
Состояние этой деятельности сохраняется, наряду с состоянием каждой деятельности, более высоким вверх по обратной стеке , в которой есть свои атрибуты
persistableMode
дляpersistAcrossReboots
. Если деятельность не имеет атрибутаpersistableMode
, который установлен наpersistAcrossReboots
, или если оно запущено с использованием FlagIntent.FLAG_ACTIVITY_NEW_DOCUMENT
, то это действие, наряду со всеми действиями, выше, не сохраняется.Когда намерение загружает деятельность, чье атрибут
persistableMode
устанавливается наpersistAcrossReboots
в вашем приложении, действие получает постоянный объектPersistableBundle
в своем методеonCreate()
. Следовательно, вы можете использоватьonSaveInstanceState()
для сохранения состояния деятельности через перезапуск устройства, пока его атрибутpersistableMode
устанавливается наpersistAcrossReboots
.ПРИМЕЧАНИЕ. Это значение атрибута влияет на поведение вашего приложения, даже если оно установлено на действие, отличное от корневой деятельности вашего приложения.
persistNever
Состояние деятельности не сохранилось.
Примечание. Это значение атрибута влияет на поведение вашего приложения, только если оно установлено на корневую активность вашего приложения.
Этот атрибут был введен на уровне 21 API.
-
android:permission
- Название разрешения, которое клиенты должны запустить деятельность или иным образом заставить ее ответить на намерение. Если вызывающий абонент
startActivity()
илиstartActivityForResult()
не предоставлен указанному разрешению, его намерение не доставляется для деятельности.Если этот атрибут не установлен, разрешение, установленное с помощью атрибута
permission
<application>
элемента, применимо к деятельности. Если ни один атрибут не установлен, деятельность не защищена разрешением.Для получения дополнительной информации о разрешениях см. В разделе «Разрешения » приложения. Обзор Manifest и советы по безопасности .
-
android:process
Название процесса, в котором работает деятельность. Обычно все компоненты приложения запускаются в имени процесса по умолчанию, созданному для приложения, и вам не нужно использовать этот атрибут. Но при необходимости вы можете переопределить имя процесса по умолчанию с помощью этого атрибута, позволяя вам распространять компоненты вашего приложения по нескольким процессам.
Если имя, присвоенное этому атрибуту, начинается с толстой кишки (
:
, новый процесс, частный для приложения, создается, когда он необходим, и активность выполняется в этом процессе.Если имя процесса начинается с символа строчной строки, деятельность работает в глобальном процессе этого имени, при условии, что у него есть разрешение на это. Это позволяет компонентам в разных приложениях разделять процесс, уменьшая использование ресурсов.
Атрибут
process
<application>
элемента может установить другое имя процесса по умолчанию для всех компонентов.-
android:relinquishTaskIdentity
Определяет ли деятельность свои идентификаторы задач в действие над ней в стеке задач. Задача, чья корневая деятельность имеет этот атрибут, установленную на
"true"
, заменяет базовыеIntent
на следующую деятельность в задаче.Если следующее действие также имеет этот атрибут, установленный
"true"
то это дает базовоеIntent
для любого действия, которое он запускает в той же задаче. Это продолжается для каждой деятельности до тех пор, пока не будет обнаружена деятельность, которая устанавливает этот атрибут для"false"
. Значение по умолчанию -"false"
.Этот атрибут устанавливается на
"true"
также позволяет использовать действиеActivityManager.TaskDescription
для изменения метки, цветов и значков на экране Recents .-
android:requireContentUriPermissionFromCaller
Определяет разрешения, необходимые для запуска этой деятельности при прохождении контента URI. Значение по умолчанию
none
является, что означает, что конкретные разрешения не требуются. Установка этого атрибута ограничивает вызов деятельности на основе разрешений Invoker. Если у Invoker нет необходимых разрешений, начало деятельности будет отказано в сфереSecurityException
.Обратите внимание, что правоприменение работает для контента uris inside
Intent.getData()
,Intent.EXTRA_STREAM
иIntent.getClipData()
.Может быть строковым значением, используя '\\;' избежать таких символов, как '\\ n' или '\\ uxxxx' для символа Unicode;
Должен быть одним из следующих постоянных значений.
Постоянный Ценить Описание никто 0 По умолчанию, конкретные разрешения не требуются. читать 1 Обеспечивает соблюдение Invoker, чтобы получить доступ к пройденному контенту URI. readandWrite 4 Обеспечивает соблюдение Invoker иметь как прочитать, так и написать доступ к пройденному контенту URI. Читатель 3 Обеспечивает соблюдение Invoker иметь доступ к прочтению или записи доступа к прошедшему контенту URI. писать 2 Обеспечивает соблюдение Invoker иметь доступ к записи к пройденному контенту URI. -
android:resizeableActivity
Определяет, поддерживает ли приложение режим с несколькими Window .
Вы можете установить этот атрибут в элементе
<activity>
или<application>
.Если вы установите этот атрибут на
"true"
, пользователь может запустить деятельность в режимах разделенного экрана и свободной формы. Если вы установите атрибут"false"
, приложение не может быть проверено или оптимизировано для мульти-окна. Система все еще может поместить активность в режиме с несколькими окнами с применением режима совместимости.Установка этого атрибута для
"false"
не гарантирует, что в режиме многонародного режима нет других приложений, которые нет, например, в картинке в картинке или на других дисплеях. Поэтому настройка этого флага не означает, что ваше приложение имеет эксклюзивный доступ к ресурсам.Если ваше приложение нацелено на уровень API 24 или выше, и вы не указываете значение для этого атрибута, значение атрибута по умолчанию
"true"
.Если ваше приложение нацелено на уровень API 31 или выше, этот атрибут работает по -разному на малых и больших экранах:
- Большие экраны (SW> = 600DP): все приложения поддерживают многолютный режим. Атрибут указывает, можно ли изменять приложение, а не то, поддерживает ли приложение режим нескольких Window. Если
resizeableActivity="false"
, приложение помещается в режим совместимости, когда это необходимо, чтобы соответствовать размеру размеров. - Небольшие экраны (SW <600DP): если
resizeableActivity="true"
и минимальная ширина и минимальная высота активности находятся в пределах требований к мульти-окнам, приложение поддерживает режим мульти-окна. ЕслиresizeableActivity="false"
, приложение не поддерживает режим мульти-окна независимо от минимальной ширины и высоты активности.
Значение корневой активности задачи применяется ко всем дополнительным действиям, запущенным в задаче. То есть, если корневая активность задачи является изменяемой, то система рассматривает все другие действия в задаче как определяемые. Если корневая деятельность не будет изменена, другие действия в задаче не решаются.
ПРИМЕЧАНИЕ. Значение корневой активности задачи применяется ко всем дополнительным действиям, запущенным в задаче. То есть, если корневая активность задачи является изменяемой, то система рассматривает все другие действия в задаче как определяемые. Если корневая деятельность не будет изменена, другие действия в задаче не решаются.
- Большие экраны (SW> = 600DP): все приложения поддерживают многолютный режим. Атрибут указывает, можно ли изменять приложение, а не то, поддерживает ли приложение режим нескольких Window. Если
-
android:screenOrientation
Запрошенная ориентация деятельности.
Когда деятельность заполняет весь экран, запрошенная ориентация действует как предложение изменить ориентацию на этом экране, чтобы соответствовать запрошенному значению. Это может привести к ориентации, которая отличается от физической ориентации экрана в пространстве, требуя, чтобы пользователь повернул устройство, чтобы продолжить использование приложения. На Android 12 (API-уровне 31) и выше производители устройств могут настраивать отдельные экраны устройств (такие как экран размером с планшет складываемого), чтобы игнорировать это предложение, а вместо этого заставляют деятельность быть в письменной форме в предпочтительной ориентации пользователя устройства. Это приводит к тому, что ориентация деятельности, соответствующая запрошему, без необходимости физического вращения своего устройства.
В режиме нескольких Window запрашиваемая ориентация не действует как предложение для общей ориентации. Если деятельность является буквой , запрошенная ориентация влияет на буквы, применяемое к деятельности.
Значение может быть любой из следующих строк:
"unspecified"
Значение по умолчанию. Система выбирает ориентацию. Политика, которую он использует, и, следовательно, выбор, сделанный в определенных контекстах, может отличаться от устройства к устройству. "behind"
Та же ориентация, что и деятельность, которая сразу под ним находится в стеке деятельности. "landscape"
Ориентация ландшафта (дисплей шире, чем высокий). "portrait"
Портретная ориентация (дисплей выше, чем широкий). "reverseLandscape"
Ориентация ландшафта в противоположном направлении от нормального ландшафта. Добавлено в уровне API 9. "reversePortrait"
Портретная ориентация в противоположном направлении от обычного портрета. Добавлено в уровне API 9. "sensorLandscape"
Ориентация ландшафта, но может быть либо нормальным, либо обратным ландшафтом на основе датчика устройства. Датчик используется, даже если пользователь имеет вращение на основе датчика на основе датчиков. Добавлено в уровне API 9. "sensorPortrait"
Портретная ориентация, но может быть либо нормальным, либо обратным портретом на основе датчика устройства. Датчик используется, даже если пользователь имеет вращение на основе датчика на основе датчиков. Однако, в зависимости от конфигурации устройства, вращение перевернута может быть не разрешено. Добавлено в уровне API 9. "userLandscape"
Ориентация ландшафта, но может быть либо нормальным, либо обратным ландшафтом на основе датчика устройства и предпочтения пользователя. Добавлен на уровне API 18. "userPortrait"
Портретная ориентация, но может быть либо нормальным, либо обратным портретом на основе датчика устройства и предпочтения пользователя. Однако, в зависимости от конфигурации устройства, вращение перевернута может быть не разрешено. Добавлен на уровне API 18. "sensor"
Датчик ориентации устройства определяет ориентацию. Ориентация дисплея зависит от того, как пользователь удерживает устройство. Он меняется, когда пользователь поворачивает устройство. Некоторые устройства, однако, не вращаются ко всем четырем возможным ориентациям по умолчанию. Чтобы использовать все четыре ориентации, используйте "fullSensor"
. Датчик используется, даже если пользователь заблокирован на основе датчика."fullSensor"
Датчик ориентации устройства определяет ориентацию для любой из четырех ориентаций. Это похоже на "sensor"
, за исключением того, что это позволяет использовать любую из четырех возможных ориентаций экрана независимо от того, что обычно поддерживает устройство. Например, некоторые устройства обычно не используют обратный портрет или обратный ландшафт, но это обеспечивает эти ориентации. Добавлено в уровне API 9."nosensor"
Ориентация определяется без ссылки на датчик физической ориентации. Датчик игнорируется, поэтому дисплей не вращается в зависимости от того, как пользователь перемещает устройство. "user"
Текущая предпочтительная ориентация пользователя. "fullUser"
Если пользователь имеет вращение на основе датчиков, это ведет себя так же, как и user
, в противном случае он ведет себя так же, как иfullSensor
, и позволяет любую из четырех возможных ориентаций экрана. Добавлен на уровне API 18."locked"
Блокирует ориентацию на его текущее вращение, каким бы это ни было. Добавлен на уровне API 18. ПРИМЕЧАНИЕ. Когда вы объявляете одно из ландшафтных или портретных значений, это считается трудным требованием для ориентации, в которой работает деятельность. Значение, которое вы объявляете, позволяет фильтрации с помощью таких услуг, как Google Play, поэтому ваше приложение доступно только для устройств, которые поддерживают ориентацию, требуемую вашей деятельностью. Например, если вы объявляете либо
"landscape"
,"reverseLandscape"
, либо"sensorLandscape"
, то ваше приложение доступно только для устройств, которые поддерживают ориентацию ландшафта.Также явно заявляйте, что ваше приложение требует либо портретной, либо ландшафтной ориентации с элементом
<uses-feature>
, такого как<uses-feature android:name="android.hardware.screen.portrait"/>
. Это поведение фильтрации, предоставляемое Google Play и другими службами, которые поддерживают его, и сама платформа не контролирует, может ли ваше приложение установить, когда устройство поддерживает только определенные ориентации.-
android:showForAllUsers
Показано ли деятельность, когда текущий пользователь устройства отличается от пользователя, который запустил деятельность. Вы можете установить этот атрибут на буквальное значение, например,
"true"
или"false"
, или вы можете установить атрибут на атрибут ресурса или темы, который содержит логическое значение.Этот атрибут был добавлен на уровне API 23.
-
android:stateNotNeeded
- Можно ли прекратить деятельность и успешно перезапустить без сохранения его состояния. Это
"true"
, если его можно перезапустить без ссылки на его предыдущее состояние, и"false"
, если требуется его предыдущее состояние. Значение по умолчанию -"false"
.Обычно, прежде чем деятельность временно закрывается, чтобы сохранить ресурсы, его метод
onSaveInstanceState()
вызывается. Этот метод хранит текущее состояние деятельности в объектеBundle
, который затем передается вonCreate()
, когда деятельность перезапускается. Если этот атрибут установлен на"true"
,onSaveInstanceState()
не может быть вызван, аonCreate()
проходитnull
вместоBundle
, как это происходит, когда деятельность начинается в первый раз.Настройка
"true"
означает, что деятельность может быть перезапущена без оставшегося состояния. Например, действие, которое отображает домашний экран, использует этот настройки, чтобы убедиться, что он не удаляется, если по какой -то причине вылетает. -
android:supportsPictureInPicture
Указывает, поддерживает ли деятельность дисплей изображения в картине .
-
android:taskAffinity
Задача, к которой деятельность имеет сродство. Действия с той же сродством концептуально принадлежат к той же задаче, к тому же «приложению» с точки зрения пользователя. Сродство задачи определяется аффинностью ее корневой деятельности.
Аффинность определяет две вещи: задача, которую выполняется действием, перезаричена (см. Атрибут
allowTaskReparenting
) и задачу, в которой находится деятельность, когда она запускается с флагомFLAG_ACTIVITY_NEW_TASK
.По умолчанию все действия в приложении имеют одинаковую близость. Вы можете установить этот атрибут, чтобы группировать их по -разному и даже поместить действия, определенные в разных приложениях в рамках одной и той же задачи. Чтобы указать, что деятельность не имеет сродства к какой -либо задаче, установите ее на пустую строку.
Если этот атрибут не установлен, деятельность наследует набор сродства для приложения. См. Атрибут
<application>
элементаtaskAffinity
. Имя аффинности по умолчанию для приложения - это пространство имен, установленное в файлеbuild.gradle
.-
android:theme
- Ссылка на ресурс стиля, определяющий общую тему для деятельности. Это автоматически устанавливает контекст деятельности для использования этой
theme
, а также может вызвать «запуск» анимации до запуска деятельности, чтобы лучше соответствовать тому, как на самом деле выглядит деятельность.Если этот атрибут не установлен, деятельность наследует набор темы для приложения в целом, от атрибута
theme
элемента<application>
. Если этот атрибут также не установлен, используется тема системы по умолчанию. Для получения дополнительной информации см. Стили и темы . -
android:uiOptions
Дополнительные варианты для пользовательского интерфейса деятельности. Должен быть одним из следующих значений.
Ценить Описание "none"
Нет дополнительных вариантов пользовательского интерфейса. Это дефолт. "splitActionBarWhenNarrow"
Добавляет панель в нижней части экрана, чтобы отображать элементы действия в панели приложений , также известную как панель действий , когда он ограничен для горизонтального пространства, например, в портретном режиме на телефоне. Вместо небольшого количества элементов действий, появляющихся в панели приложений в верхней части экрана, панель приложений разделена на верхнюю серию навигации и нижнюю панель для элементов действий. Это означает, что разумное количество места предоставляется не только для элементов действия, но и для навигационных и титульных элементов наверху. Пункты меню не разделены по двум барам. Они всегда появляются вместе. Для получения дополнительной информации о панели приложений см. Добавьте панель приложений .
Этот атрибут был добавлен на уровне API 14.
-
android:windowSoftInputMode
- Как главное окно активности взаимодействует с окном, содержащим мягкую клавиатуру на экране. Настройка для этого атрибута влияет на две вещи:
- Независимо от того, скрыта ли мягкая клавиатура или видимая, когда деятельность становится центром внимания пользователя.
- Независимо от того, является ли основное окно активности меньше, чтобы освободить место для мягкой клавиатуры или содержимого сковороды, чтобы сделать текущий фокус видимым, когда часть окна покрыта мягкой клавиатурой.
Настройка должна быть одним из значений, перечисленных в следующей таблице, или комбинацией одного значения
"state..."
плюс одно"adjust..."
. Установка нескольких значений в любой группе, таких как несколько значений"state..."
, имеет неопределенные результаты. Отдельные значения разделены вертикальной стержней (|
), как показано в следующем примере:<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >
Значения, установленные здесь (кроме
"stateUnspecified"
и"adjustUnspecified"
) переопределяют значения, установленные в теме.Ценить Описание "stateUnspecified"
Неудачна ли мягкая клавиатура скрыта или видимая, не указана. Система выбирает соответствующее состояние или опирается на настройку в теме. Это настройка по умолчанию для поведения мягкой клавиатуры.
"stateUnchanged"
Мягкая клавиатура хранится в любом состоянии, который он был последним, видимым или скрытым, когда деятельность выходит на первый план. "stateHidden"
Мягкая клавиатура скрыта, когда пользователь выбирает деятельность, то есть, когда пользователь утвердительно перемещается вперед к деятельности, вместо того, чтобы вернуться в нее, оставляя другое действие. "stateAlwaysHidden"
Мягкая клавиатура всегда скрыта, когда главное окно деятельности имеет фокус ввода. "stateVisible"
Мягкая клавиатура становится видимой, когда пользователь выбирает деятельность, то есть, когда пользователь утвердительно перемещается вперед к деятельности, вместо того, чтобы вернуться в нее, оставляя другое действие. "stateAlwaysVisible"
Мягкая клавиатура видна, когда окно получает фокус ввода. "adjustUnspecified"
Независимо от того, изменяется ли основное окно деятельности, чтобы освободить место для мягкой клавиатуры или содержимого оконной сковороды, чтобы сделать текущий фокус видимым на экране, не указано. Система автоматически выбирает один из этих режимов в зависимости от того, имеет ли содержимое окна какие -либо представления макета, которые могут прокрутить их содержимое. Если есть такой вид, окно изменяется размер, предполагая, что прокрутка может сделать все содержимое окна видимым в меньшей области. Это настройка по умолчанию для поведения главного окна.
"adjustResize"
Главное окно деятельности всегда изменяется, чтобы освободить место для мягкой клавиатуры на экране. "adjustPan"
Главное окно деятельности не изменяется, чтобы освободить место для мягкой клавиатуры. Скорее, содержимое окна автоматически панирует так, что текущая фокус никогда не скрывался клавиатурой, и пользователи всегда могут увидеть, что они печатают. Как правило, это менее желательно, чем изменение размера, потому что пользователю может потребоваться закрыть мягкую клавиатуру, чтобы достичь и взаимодействовать с скрытыми частями окна. "adjustNothing"
Главное окно деятельности не изменяется или не изменяется, чтобы освободить место для мягкой клавиатуры. Занятие отвечает за то, что освобождает место для мягкой клавиатуры, используя вставки в окне. Для действий, которые правильно обрабатывают вставки в окне, это дает наибольшую контроль над тем, как содержимое окна отображается на экране. Этот атрибут был введен на уровне 3 API.
-
- введено в:
- API Уровень 1 для всех атрибутов, кроме
noHistory
иwindowSoftInputMode
, которые были добавлены на уровне API 3. - Смотрите также:
-
<application>
<activity-alias>
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-06-10 UTC.
[null,null,["Последнее обновление: 2025-06-10 UTC."],[],[]]