awtk/docs/trap_list.md
2019-05-15 17:12:14 +08:00

2.3 KiB
Raw Blame History

避坑指南

世间总是有坑的,可能是因为填坑很困难,也可能是因为填了这个坑就要挖另外一个坑。但是,有坑并不代表我们需要踩进去,绕开这些已知的坑,可以让生活更美好。当然,今天的坑,明天也许已经填了,定期阅读本清单,有助于身心健康。

把你踩过的坑告诉我们,我们尽力去填了它们,实在填不了,也可以列在这里,供大家参考:


1.在PC上模拟运行时显示正常而在开发板上出现局部残留的现象。

原因

  • 脏矩形是根据控件的位置和大小(x/y/w/h)计算的,也就是超出范围的部分不会被重绘。
  • 控件的文字和图片超出控件的范围时,一般是不会被裁剪的(ScrollView等控件除外)。
  • 在SDL模式下不启用脏矩形所以在PC上可能是正常的。

绕坑

  • 保持控件的文本和图片在控件自身的范围内。

2.修改了主题描述文件,但是预览时没有任何效果。

原因

  • 出于性能考虑AWTK使用的是二进制格式的主题数据XML格式的主题描述文件只是方便开发者编辑的。
  • 修改了XML格式的主题描述文件还需要将它转成二进制格式预览时才会生效。

绕坑

  • 使用脚本update_res.py更新资源。
  • 或者用命令bin/themegen将XML格式的主题数据转成二进制的主题数据。

3.旋转/缩放动画对按钮无效

原因

  • 几乎所有控件都支持平移和淡入淡出动画。
  • 部分控件支持value改变的动画(如进度条)。
  • 部分控件支持旋转/缩放的动画(目前只有图片支持)。
  • 滚动动画通常只是用于控件内部实现(如slide_view、switch、scroll_view和text_selector等)。
  • 旋转/缩放的动画只是改变控件的显示效果,不改变控件的实际大小和位置(脏矩形和事件处理)。

绕坑

  • 趋长(吉)避短(凶),平安幸福。

4.widget_move/widget_resize/widget_move_resizes操作无效。

原因

  • 通常是设置layout参数只要layout参数存在widget_layout被触发时就会用该参数重新布局。

绕坑

  • 如果你需要调用widget_move/widget_resize/widget_move_resizes修改控件的大小和位置就不要设置layout参数。