Selector在HarmonyOS中的使用
Selector其实就是一组状态列表(StateList),可以将不同的状态关联不同的效果,主要用于设置控件背景和字体颜色等。控件一共有7种状态,常用的有:空状态empty,按下状态pressed,获取焦点focused,勾选状态checked,不可用状态disable。
鸿蒙中selector效果可以通过xml的state-container标签或者在代码中使用StateElement来实现,下面以button的背景选择器举例说明:
实现以及使用:
- 1创建selector.xml
在resources/base/graphic自定义 shape,定义不同状态的背景,然后将多个shape组合配置到state-container中生成一个新的selector_button.xml文件,提供给控件使用。
定义空状态下的shape背景生成background_btn_empty.xml,其他状态类似:
定义按下状态下的背景生成background_btn_pressed.xml:
创建selector_button.xml,在ohos:element字段中配置shape背景, ohos:state配置控件状态:
也可以直接使用颜色:
- 2控件中使用
设置控件的背景background_element为状态选择器,并在状态选择器中按需添加不同的状态和不同的状态下的背景:
- 3代码中使用
新建不同的状态下的ShapeElement后将其添加到State Element中,并将需要设置状态选择器的部分设置为添加了状态的StateElement,如Button的setBackground、Checkbox的setButtonElement,设置之后相关的控件就会有状态选择器的效果。
- 3.1 Button
- 3.2 TextField
- 3.3 Checkbox
本文作者:Zhang Heng 来自鸿蒙三方库联合特战队
不错,对Selector讲解的挺全面的。
超级干货
学习到了。
<item
ohos:element="$media:xxx"
ohos:state="component_state_pressed"/>
怎么使用呢