Dart UI 库-- AccessibilityFeature

2019-01-25  本文已影响0人  pstommy

附加可能有平台开启的可访问性特征,
不是从Flutter中启用这些设置,而是由平台使用它们来指示启用了其他可访问性特性。

属性

accessibleNavigation →bool

实现代码
bool get accessibleNavigation => _kAccessibleNavigation & _index != 0;

boldText →bool

实现代码

bool get boldText => _kBoldTextIndex & _index != 0;

disableAnimations →bool

hashCode →int

哈希码是一个整数,表示影响运算符==比较的对象的状态。

所有对象都有哈希码。默认哈希码只表示对象的标识,这与默认操作符== implementation只在对象相同时才认为它们相等的方式相同(参见identityHashCode)。
如果重写运算符==以使用对象状态,则还必须更改散列代码以表示该状态。
对于根据运算符==彼此相等的对象,哈希码必须相同。只有当对象以影响相等的方式改变时,对象的哈希码才会改变。对哈希码没有进一步的要求。它们不需要在相同程序的执行之间保持一致,并且没有分发保证。
不相等的对象允许具有相同的哈希码,甚至在技术上允许所有实例具有相同的哈希码,但是如果冲突发生得太频繁,可能会降低基于哈希的数据结构(如HashSet或HashMap)的效率。

如果子类覆盖hashCode,它应该覆盖运算符==运算符,以保持一致性。

实现代码

@override
int get hashCode => _index.hashCode;

invertColors → bool

reduceMotion → bool

实现代码

bool get reduceMotion => _kReduceMotionIndex & _index != 0;

runtimeType →Type

方法

dynamic noSuchMethod (Invocation invocation)

在访问不存在的方法或属性时调用。类可以覆盖noSuchMethod来提供自定义行为。
如果返回一个值,它将成为原始调用的结果。默认的行为是抛出一个NoSuchMethodError。

@pragma("vm:entry-point")
external dynamic noSuchMethod(Invocation invocation);

操作符

operator ==(dynamic other) →bool

@override
bool operator == (dynamic other)

相等操作符。

所有对象的默认行为是,当且仅当此对象和其他对象是同一对象时返回true。

重写此方法以在类上指定不同的相等关系。重写方法必须仍然是等价关系。也就是说,它必须是:

随着时间的推移,这个方法也应该是一致的,所以两个对象是否相等应该只在其中至少一个对象被修改时才会改变。

如果子类覆盖了相等运算符,它也应该覆盖hashCode方法以保持一致性。

实现代码

@override
bool operator ==(dynamic other) {
  if (other.runtimeType != runtimeType)
    return false;
  final AccessibilityFeatures typedOther = other;
  return _index == typedOther._index;
}
上一篇 下一篇

猜你喜欢

热点阅读