mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-11-29 18:48:09 +08:00
improve offset doc
This commit is contained in:
parent
6e753e609e
commit
6ebd185908
@ -1,5 +1,8 @@
|
||||
# 最新动态
|
||||
|
||||
2023/03/21
|
||||
* 完善关于offset的文档(感谢智明提供补丁)
|
||||
|
||||
2023/03/20
|
||||
* 修复分发double\_clicked事件时存在的野指针风险(感谢雨欣提供补丁)
|
||||
* 优化按键逻辑,尽量用text\_edit的逻辑(感谢陈聪提供补丁)
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
# 在自定义控件中使用 offset 的注意事项
|
||||
|
||||
当用户自己写自定义控件的时候,如果需要该自定义控件实现滚动效果效果的时候,此时需要引入一个 offset 的概念(水平方向用 xoffset,垂直方向用 yoffset)。
|
||||
当用户自己写自定义控件的时候,如果需要该自定义控件实现滚动效果效果的时候,此时需要引入一个 offset 的概念(水平方向用 xoffset,垂直方向用 yoffset),在控件中通过 offset 的变化来移动控件的子控件的位置到指定的区域中显示,从而达到滚动效果。(比如:每个子控件的 y 属性都根据 offset 来计算出来,那么 offset 改变了,那么每个子控件的 y 坐标都改变了,从而决定子控件显示的位置。)
|
||||
|
||||
同时 AWTK 的点击事件(鼠标或者触摸)都会受到控件的 offset 影响,所以 AWTK 提供了两个机会给控件把这个 offset 的数据传递给 AWTK:
|
||||
|
||||
@ -37,4 +37,5 @@ offset 会影响 AWTK 内部的 API 甚至会影响内部执行逻辑,从而
|
||||
|
||||
# 3. 总结
|
||||
|
||||
如果使用 offset 的话,尽量使用上面说的第二种方法来实现,这样可以减少很多问题,如果实在不行的话,可以通过重载 find_target 和 is_point_in 函数来处理,但是这样子也是把问题变复杂了。
|
||||
如果使用 offset 的话,**尽量使用上面说的第二种方法来实现**,这样可以减少很多问题,如果实在不行的话,可以通过重载 find_target 和 is_point_in 函数来处理,但是这样子也是把问题变复杂了。
|
||||
|
||||
|
@ -182,7 +182,7 @@ struct _widget_vtable_t {
|
||||
widget_is_point_in_t is_point_in;
|
||||
/**
|
||||
* 该函数指针返回的偏移值,最好和 WIDGET_PROP_X/YOFFSET 的属性一致,如果两者不同的话,容易出现问题。
|
||||
* 注意:偏移值一般使用在动画,脏矩形以及点击等事件上面,所以一定要保持一致。
|
||||
* 注意:偏移值一般使用在动画,脏矩形以及点击等事件上面,所以一定要保持一致。详情请看 docs/how_to_use_offset_in_custom_widget.md
|
||||
*/
|
||||
widget_get_offset_t get_offset;
|
||||
widget_auto_adjust_size_t auto_adjust_size;
|
||||
|
@ -554,12 +554,14 @@ BEGIN_C_DECLS
|
||||
/**
|
||||
* @const WIDGET_PROP_XOFFSET
|
||||
* X方向的偏移。(如果控件有继承 get_offset 函数指针的话,一定要和 get_offset 返回值保持一致,否则容易出现问题)
|
||||
* 详情请看 docs/how_to_use_offset_in_custom_widget.md
|
||||
*/
|
||||
#define WIDGET_PROP_XOFFSET "xoffset"
|
||||
|
||||
/**
|
||||
* @const WIDGET_PROP_YOFFSET
|
||||
* Y方向的偏移。(如果控件有继承 get_offset 函数指针的话,一定要和 get_offset 返回值保持一致,否则容易出现问题)
|
||||
* 详情请看 docs/how_to_use_offset_in_custom_widget.md
|
||||
*/
|
||||
#define WIDGET_PROP_YOFFSET "yoffset"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user