使用Kotlin组合整数标志的最佳方法?

whi*_*joe 32 android kotlin

在java中,我们经常通过|组合标志 运营商.

例如

getWindow().getDecorView().setSystemUiVisibility(
  View.SYSTEM_UI_FLAG_LAYOUT_STABLE | 
  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | 
  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到Kotlin中的等效运算符.有人知道在Kotlin中组合整数标志的便捷方法吗?

nha*_*man 70

只需使用or:

getWindow().getDecorView().setSystemUiVisibility(
  View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);
Run Code Online (Sandbox Code Playgroud)

这可能有点令人困惑.您可以创建一个小助手扩展函数with(或其他)以使其更具可读性:

infix fun Int.with(x: Int) = this.or(x)

getWindow().getDecorView().setSystemUiVisibility(
  View.SYSTEM_UI_FLAG_LAYOUT_STABLE with
  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION with
  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);
Run Code Online (Sandbox Code Playgroud)

  • 同意中缀,我总是发现```或```有点令人困惑 (2认同)