2015-11-30 12 views
11

W języku java regularnie łączymy flagi za pomocą | operator.Najlepszy sposób na łączenie flag całkowitych za pomocą Kotlin?

np.

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

Nie mogę znaleźć równoważnego operatora w Kotlin. Ktoś zna wygodny sposób łączenia flag całkowitych w Kotlin?

Odpowiedz

31

Wystarczy użyć 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 
); 

To może być trochę mylące. Można utworzyć funkcję przedłużacza mały pomocnik with (lub cokolwiek), aby uczynić go bardziej czytelnym:

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 
); 
+1

Zgoda na wrostkiem, ja zawsze znaleźć '' 'or''' być trochę mylące – mradzinski

Powiązane problemy