【问题标题】:Best way to combine integer flags using Kotlin?使用 Kotlin 组合整数标志的最佳方法?
【发布时间】:2015-11-30 17:59:42
【问题描述】:

在 java 中,我们经常通过 | 组合标志。运算符。

例如

getWindow().getDecorView().setSystemUiVisibility(
  View.SYSTEM_UI_FLAG_LAYOUT_STABLE | 
  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | 
  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);

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

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    只需使用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
    );
    

    这可能有点令人困惑。您可以创建一个小助手扩展函数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
    );
    

    【讨论】:

    • 同意中缀,我一直觉得or 有点混乱
    猜你喜欢
    • 2011-04-17
    • 2011-08-29
    • 2013-08-24
    • 2020-01-03
    • 2018-01-25
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多