美文网首页
Dart UI 库-- AccessibilityFeature

Dart UI 库-- AccessibilityFeature

作者: pstommy | 来源:发表于2019-01-25 14:54 被阅读0次

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

属性

accessibleNavigation →bool

  • 是否有一个正在运行的可访问性服务正在改变设备的交互模型
  • read-only
  • 例如,Android上的对讲和iOS上的VoiceOver都支持这个标志。
实现代码
bool get accessibleNavigation => _kAccessibleNavigation & _index != 0;

boldText →bool

  • 平台要求以粗体粗体渲染文本
  • read-only
  • 仅支持 iOS

实现代码

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

disableAnimations →bool

  • 平台要求禁用或简化动画
  • read-only

hashCode →int

  • 对象的哈希值
  • read-only, override
  • 这个对象的哈希码。

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

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

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

实现代码

@override
int get hashCode => _index.hashCode;

invertColors → bool

  • 该平台正在反转应用程序的颜色.
  • read-only

reduceMotion → bool

  • 该平台要求简化某些动画,并删除视差效果。
  • 仅支持iOS

实现代码

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

runtimeType →Type

  • 对象的运行时类型的表示。
  • 只读的,遗传的

方法

  • toString() →String
    返回此对象的字符串表示形式。
    @override

  • noSuchMethod(Invocation invocation) → dynamic

dynamic noSuchMethod (Invocation invocation)

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

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

操作符

operator ==(dynamic other) →bool

  • @override
@override
bool operator == (dynamic other)

相等操作符。

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

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

  • Total:它必须为所有参数返回一个布尔值。它不应该抛出或返回null。

  • 反射:对于所有对象o, o == o必须为真。

  • 对称:对于所有对象o1和o2, o1 == o2和o2 == o1必须要么为真,要么为假。

  • 传递:对于所有对象o1、o2和o3,如果o1 == o2和o2 == o3为真,那么o1 == o3必须为真。

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

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

实现代码

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

相关文章

网友评论

      本文标题:Dart UI 库-- AccessibilityFeature

      本文链接:https://www.haomeiwen.com/subject/osmmjqtx.html