Middleware_V2.0.2.1
目录结构
|- api-demo
|- xml-demo
|- lib
|- resource
|--|-- fonts
|--|-- images
|--|-- pinyin
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE:string=../arm-linux.cmake && make && make install
Tips
-
任何控件必须设置皮肤属性,因为皮肤属性是必须的,不然解析 bin 文件的时候会报错,导致程序退出
-
所有的资源 ID 不能重复,复制粘贴的要注意了~
-
HiBuilder 中皮肤显示是平铺,实际皮肤默认是缩放
-
不要使用 Hi Builder IDE 生成 bin 文件,使用 Linux 下的 xml2bin
-
使用控件前一定要看
标签使用指南
文档,查看那些属性是必须的 -
推荐使用简单控件实现比较复杂的布局
控件没有设置背景颜色或者图片,isnodrawbg 设置成 yes
这是 higv BUG 🐛
- 联系海思工作人员
- Label 可以使用其他控件替代,比如 button
检测是否是 ARGB,A 是透明度,0xFF000000 黑色,0x00000000 完全透明黑色,0x801400FA 透明度 50% 蓝色
HiBuilder 在 Edit 控件自动生成 ispassword 属性,貌似当前 xml2bin 工具还不支持这个属性,手动在 xml 删除这个属性
检查 maxlength 属性是否足够长
点击按钮后符号软键盘消失,然后自动切换到英文软键盘,无法输入字符
使用 HI_GV_IMEWindow_STANDARD_A 、HI_GV_IMEWindow_STANDARD_B 进行替换,不要使用 HI_GV_IMEWindow_SYBMOL
这是 BUG 🐛 ,因为 Pinyin 输入法选择框溢出导致,可以忽略
这是 BUG 🐛
这是 BUG 🐛
可以手动刷新,先父容器在刷新自己
HI_GV_Widget_GetParent(self, &parent);
if(parent != HI_NULL) {
HI_GV_Widget_Paint(parent, NULL);
}
HI_GV_Widget_Paint(self, NULL); // or HI_GV_Widget_Update(self, NULL)
这是一个 BUG 🐛
使用 xml2bin 生成的 language.h 中的 id 不工作
或许这里的 id 是要用 HI_GV_FontSet_Create
api 创建返回后的 id
或者可以使用 HI_GV_Lan_GetCurLangID + HI_GV_Lan_GetLangString + HI_GV_Widget_SetText
<timefmt
id="TIMEFORMAT_SIMPLE"
en="[yyyy]/[MM]/[dd] [HH]:[mm]:[ss]"
zh_CN="[yyyy]/[MM]/[dd] [HH]:[mm]:[ss]"/>
time_t t = time(NULL);
HI_GV_Clock_SetUTC(widgetHandle, t);
HI_GV_Widget_Paint(widgetHandle, NULL);
这是一个 BUG 🐛
高度是根据行数决定的,设置10行不一定要给10行数据,也可以给1行数据
列的布局,新版本 xml 中有边距属性可以设置,但是提供 ide 和文档中没有描述
可以设置空的列来实现布局
<listcol
id="UI_PAGE_ABOUT_LISTBOX1_LISTCOL_NULL1"
coltype="text"
colwidth="20"
colbinddb="no"
coldbindex=""
colalignment="hcenter|vcenter"
/>
第一列设置颜色后,第二列第一行会显示第一列的字体颜色,然后才显示第二列自己的颜色
这是一个 BUG 🐛
列宽溢出导致的,调整列宽
官方文档标签文档描述和实际不同,有些属性文档写着不是必须的,但是实际是必须的,比如 icon 属性,title high 不能为 0
官方提供的 demo 能正常显示,但是把 xml 中 messagebox 复制过来后,除了删除一些原来的事件 callback
无法显示,但是窗口确实是存在的,点击是有消息 callback 的
- 最后我是单独做了一个窗口,用来替换 MessageBox 控件 ,使用 Api 注册按钮 callback