HarmonyOS鸿蒙Next中AbilityForm在按照官方文档实现看不懂,有已经实现的小伙伴没有,给发个代码看看
HarmonyOS鸿蒙Next中AbilityForm在按照官方文档实现看不懂,有已经实现的小伙伴没有,给发个代码看看 根据查看文档感觉有几点看不懂的地方:
- 有地方报错,好像是文档中有错误的。根据文档中copy布局文件根据文档说明创建
FormAbility
文件,然后自动在slice中生成一个FormAbility
Slice,但是不知道为什么在这个FormAbility
中使用的FormSlice
我感觉是没有使用默认的FormAbilitySlice
,然后我就把它改成FormAbilitySlice.
- 然后在文档的第三步中,在它的
FormSlice
中使用一个ShapeElement.RECTANGLE
,但是这个类中并没有这个枚举值,然后我就把它删掉了
还有这个代码assembleText(FormAbility.getClickTimes())
,在FormAbility
中并没有getClickTimes
的get方法,不知这个调用的是那个,于是自己实现了这个方法 还有就是assembleText
这个方法也没有啊,最后我就把它去掉了。
- 然后继续按照文档往下走,配置配置文件,但是发现自动补全代码中意思感觉和示例中差不多,但是并没有示例中那样写
示例代码:
自动补全的代码:
- 然后到了表单使用那一步,感觉提示的是写在
FormAbilitySlice
中,但是写进去发现好多字段都没有
还有接下来的俩个方法是否是写在了FormAbilitySlice
中也不确定
希望有写成功的小伙伴给指正一下。
更多关于HarmonyOS鸿蒙Next中AbilityForm在按照官方文档实现看不懂,有已经实现的小伙伴没有,给发个代码看看的实战教程也可以访问 https://www.itying.com/category-93-b0.html
卡片相关开发请参照以下文档
另外,你的文档是哪里的,给个地址,我们一起看看你的问题
更多关于HarmonyOS鸿蒙Next中AbilityForm在按照官方文档实现看不懂,有已经实现的小伙伴没有,给发个代码看看的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
老哥,这是弄服务卡片么,要把相关的逻辑放到新的ability中么.
protected ProviderFormInfo onCreateForm(Intent intent)
总觉的这个方法是js 的.
java的服务卡片是这个方法初始化么.
protected AbilityForm onCreateForm()
这玩意是不是先有的js的服务卡片啊, java的目前就是凑活搞上去的…
亲爱滴开发者 ,这个问题已经在处理中啦,稍后答复你哟 ,么么哒
在HarmonyOS鸿蒙Next中,AbilityForm是用于创建和管理卡片式UI的组件。以下是一个简单的AbilityForm实现示例代码:
import Ability from '@ohos.application.Ability';
import AbilityForm from '@ohos.application.AbilityForm';
export default class MainAbility extends Ability {
private formId: string = '';
onStart() {
console.info('MainAbility onStart');
this.createForm();
}
async createForm() {
try {
const formInfo = {
name: 'MainForm',
bundleName: 'com.example.myapplication',
abilityName: 'MainAbility',
moduleName: 'entry',
dimension: 1,
jsComponentName: 'MainForm',
formConfigAbility: '',
updateEnabled: true,
scheduledUpdateTime: '10:30',
updateDuration: 1,
defaultFlag: true,
supportDimensions: [1],
landscapeLayouts: [],
portraitLayouts: [],
formVisibleNotify: true,
metaData: {},
description: 'This is a form',
colorMode: 0,
supportIcon: true,
icon: 'icon.png',
label: 'My Form'
};
this.formId = await AbilityForm.createForm(this.context, formInfo);
console.info('Form created with ID:', this.formId);
} catch (error) {
console.error('Failed to create form:', error);
}
}
onDestroy() {
console.info('MainAbility onDestroy');
if (this.formId) {
AbilityForm.deleteForm(this.formId).then(() => {
console.info('Form deleted:', this.formId);
}).catch((error) => {
console.error('Failed to delete form:', error);
});
}
}
}
这段代码展示了如何在HarmonyOS中创建一个简单的AbilityForm。首先,在onStart
生命周期方法中调用createForm
方法来创建表单。createForm
方法中定义了表单的基本信息,并通过AbilityForm.createForm
方法创建表单。表单创建成功后,返回的formId
可以用于后续的表单管理操作。在onDestroy
生命周期方法中,使用AbilityForm.deleteForm
方法删除表单。
在HarmonyOS鸿蒙Next中,AbilityForm
是用于实现卡片功能的核心类。以下是一个简单的AbilityForm
实现示例,展示如何创建一个基本的卡片:
public class MyAbilityForm extends AbilityForm {
@Override
protected void onStart(Intent intent) {
super.onStart(intent);
// 初始化卡片布局
setUIContent(ResourceTable.Layout_form_layout);
}
@Override
protected void onActive() {
super.onActive();
// 卡片激活时的逻辑
}
@Override
protected void onInactive() {
super.onInactive();
// 卡片非激活时的逻辑
}
}
在form_layout.xml
中定义卡片的UI布局。确保在config.json
中正确配置AbilityForm
的入口。