-
Notifications
You must be signed in to change notification settings - Fork 257
在xml中使用表达式
zhenglibao edited this page Jun 18, 2021
·
4 revisions
- 在要使用表达式的属性名称前添加$,比如 layout="$width: 3*(100+2)"
- 布局属性和视图属性均支持表达式
- 表达式中支持的符号包括 +, -, *, /, (, ), 不支持其他运算符
- 在表达式中支持使用宏定义,包括系统预定义的宏和自定义的宏,如 layout="$width: 3*(ScreenWidth+2)"
- 如果表达式有错误,将会返回nan,同时控制台会输出相应错误信息
- 宏是一个具有名称,并且能够返回double数值类型的block,可以通过名称来获取该block的返回值
- 系统内置支持4个宏,包括 ScreenWidth, ScreenHeight, NavHeight, ScreenScale
- 使用FlexRegisterMacro注册自定义宏,宏名字必须使用大写或者小写英文字母,建议不要包含数字或者其他特殊字符
- 如果在表达式中引用了未注册的宏定义,则将按照0处理,同时控制台会有相应的提示
<UIView layout="$width:ScreenWidth*0.6,height:50,alignItems:center,justifyContent:center" attr="bgColor:#e5e5e5,borderRadius:6">
<UILabel attr="@:system/buttonText,text:表达式计算,屏幕宽度的60%"/>
</UIView>
Flexbox Introduction & performance (in Chinese)
Tutorial 1: Create View Controller with xml layout
Tutorial 2: Create Table Cell with xml layout
Tutorial 3: Embed xml layout into traditional view hierarchy
Tutorial 4: Use custom view in xml layout
Tutorial 5: Create reusable view using xml layout file