C
ActivityView QML 类型
Qt Android Activity View 的 QML 包装。 更多...
导入说明 | import QtAndroidActivityView |
从 | Qt 6.3 |
继承 |
属性
- activitySize() : size
- className : string
- fillMode : enumeration
- packageName : string
- placeholder : Item
- restoreOnAppResume : bool
- status : enumeration
- usePlaceholder : bool
方法
- void resetActivitySize()
- void restore()
详细说明
ActivityView 允许从 QML 组件中嵌入和处理 Android 应用和活动。
示例用法
以下片段展示了 ActivityView 类型的最简单用法。
import QtAndroidAutomotive.ActivityView ActivityView { anchors.fill: parent packageName: "com.android.deskclock" }
Activity View 已知问题和限制
由于 ActivityView 需要特殊权限并且依赖于私有 Android API,因此使用它的应用程序必须使用平台密钥签名。
Android 10
由提供的 packageName
和 className
解析的活动必须将 resizeableActivity 属性设置为 true
,才能正确作为嵌入的活动启动。如果活动不属于该应用程序的所有者,则必须允许嵌入。此规则也适用于从嵌入活动内部启动的活动。否则,新的活动可能不会正确处理,例如不会全屏显示。
属性文档
activitySize() : size |
此属性包含有关活动所需大小的信息。如果为空,则活动大小将绑定到项目大小。
注意:实际的Android活动大小将以设备坐标为单位,而不是以设备无关像素为单位。这意味着即使启用了高DPI缩放(缩放因子大于1.0),Android活动仍将使用设备坐标创建。
另请参阅:fillMode。
className : string |
此属性保存由属性定义的包内部的类名 packageName。当定义时,指定的类将用于启动活动;否则,将使用适当的默认类启动给定包,以在包中启动主活动。
必须使用完整的包目标路径指定类名。
ActivityView { anchors.fill: parent packageName: "com.android.contacts" className: "com.android.contacts.activities.LicenseActivity" }
但是,如果className属性值的第一个字符是点号,则应用包名(属性 packageName)将添加到名称之前。因此,以下示例运行与上面示例相同的活动
ActivityView { anchors.fill: parent packageName: "com.android.contacts" className: ".activities.LicenseActivity" }
另请参阅:packageName。
fillMode : enumeration |
此属性保存了底层的 ActivityView 纹理的fillMode。
常数 | 描述 |
---|---|
ActivityView.Stretch | 活动将缩放到适应。 |
ActivityView.PreserveAspectFit | 活动将均匀缩放以适应而不会裁剪。 |
注意:如果未设置activitySize,则设置此属性没有效果。换句话说,只有在activitySize与Item大小不同时才会发生缩放。
另请参阅:activitySize。
packageName : string |
此属性保存要运行在组件内的活动的包名。
由提供的packageName和className解析的活动必须满足某些标准。有关详细信息,请参阅Activity View已知问题和限制部分。
另请参阅:className。
placeholder : Item |
此属性保存要显示在活动上的占位符项。
以下示例演示了如何在使用ActivityView移动时使用占位符。
Rectangle { width: 400 height: 600 border.width: 1 MouseArea { id: dragMouseArea anchors.fill: parent drag.target: parent } ActivityView { id: activityView anchors.fill: parent anchors.margins: 30 packageName: "com.android.deskclock" usePlaceholder: dragMouseArea.pressed placeholder: Item { Image { anchors.centerIn: parent source: "icon.png" width: 50 height: 50 } } } }
注意:内容项将自动定位和调整大小以适应 ActivityView。不尊重对x、y、width和height属性的内容项的绑定。
另请参阅:usePlaceholder。
restoreOnAppResume : bool |
此属性保存是否应在非活动状态下关闭或运行到其他地方时恢复嵌入式活动。默认值为 true
。
status : enumeration |
此属性保存受控的ActivityView的状态。
常数 | 描述 |
---|---|
ActivityView.NotInitialized | 组件实例尚未初始化。初始化正在进行,必须在任何活动运行之前完成。此过程涉及分配适当的资源,例如创建Surface。初始化针对每个ActivityView组件的实例只会进行一次。 |
ActivityView.Ready | 组件实例已经初始化,但未设置有效的包/类名称。设置有效包/类名称后,活动将立即启动。 |
ActivityView.Starting | 以包/类名称定义的活动目前正在启动中。 |
ActivityView.Started | 活动已启动。 |
ActivityView.RemovedExternally(自Qt 6.4起) | 该活动已从本ActivityView中移除。这发生在应用处于活动状态且活动在别处运行或已关闭时。第二种情况是当应用不活跃(例如挂起)时,restoreOnAppResume设置为false ,活动在别处运行或已关闭。 |
使用此状态提供更新或以某种方式响应当前状态更改。例如,您可以绑定到状态值
BusyIndicator { running: activityView.status !== ActivityView.Started }
usePlaceholder : bool |
此属性表示是否显示占位符而不是实际的ActivityView。默认情况下为false
。
另请参阅placeholder。
方法文档
void resetActivitySize() |
如果活动大小值已更改为null,则将大小值设置为0,更新值并触发发出活动大小更改的事件。
void restore() |
此函数将重新加载从ActivityView组件移除的外部活动。
另请参阅restoreOnAppResume和status。
适用于某些Qt许可证。
了解更多。