Подтвердить что ты не робот

Лучший способ комбинировать целые флаги с использованием Kotlin?

В java мы регулярно объединяем флаги с помощью | Оператор.

например.

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

Я не могу найти эквивалентный оператор в Котлине. Кто-нибудь знает удобный способ комбинировать целые флаги в Kotlin?

4b9b3361

Ответ 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
);