为什么 FOCUSED_STATE_SET 是数组

Why FOCUSED_STATE_SET is array

文档说: 表示视图已聚焦。

为什么FOCUSED_STATE_SET是数组。

protected static final int[] FOCUSED_STATE_SET

所以应该是一个值。

第一个线索是文档告诉我们FOCUSED_STATE_SET is a state that is used for Drawables, particularly getDrawableState()

关于它的作用的另一个线索是它是静态的和最终的,这意味着它是一个常量,而不是它描述任何特定视图的当前状态。

FOCUSED_STATE_SET描述了一个状态,表示一个View被聚焦。 "Set" 在此上下文中并不表示真或假 "is this thing set,",而是将聚焦状态 描述为一组多个状态

我们可以 look at the definition 在视图 class 中的许多 _STATE_SET 常量中查看它们实际包含的内容。事实上,这些常量中有许多包含多个状态,例如 SELECTED_WINDOW_FOCUSED_STATE_SET,它描述了 StateSet.VIEW_STATE_WINDOW_FOCUSEDStateSet.VIEW_STATE_SELECTED.

的组合

FOCUSED_STATE_SET 只是 StateSet.VIEW_STATE_FOCUSED,但仍然是一个数组,因此它是 Drawable#getDrawableState().

的有效状态