Android:读取 View.setSystemUiVisibility(int) 中的按位运算符或
Android: Reading Bitwise Operator OR in View.setSystemUiVisibility(int)
在 Android Studio 提供的 'Full Activity' 模板中,使用了以下代码:
// Note that some of these constants are new as of API 16 (Jelly Bean)
// and API 19 (KitKat). It is safe to use them, as they are inlined
// at compile-time and do nothing on earlier devices.
mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
我注意到这些标志中的每一个都有一个特定的最终 int 值,但是 | 的功能是什么?与这些值一起使用?
他们对所有数字应用按位或运算,然后组合成另一个包含所有标志的数字。
为了更清楚:假设您有标志 View.FLAG_1 = 1
、View.FLAG_2 = 2
和 View.FLAG_3 = 4
。这些标志的二进制值是 001
、010
和 100
.
如果您将 View.FLAG_1 | View.FLAG_3
传递给您的方法,您将传递 001 | 100
,它等于 101
。然后您的方法将了解这两个标志已通过。
在 Android Studio 提供的 'Full Activity' 模板中,使用了以下代码:
// Note that some of these constants are new as of API 16 (Jelly Bean)
// and API 19 (KitKat). It is safe to use them, as they are inlined
// at compile-time and do nothing on earlier devices.
mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
我注意到这些标志中的每一个都有一个特定的最终 int 值,但是 | 的功能是什么?与这些值一起使用?
他们对所有数字应用按位或运算,然后组合成另一个包含所有标志的数字。
为了更清楚:假设您有标志 View.FLAG_1 = 1
、View.FLAG_2 = 2
和 View.FLAG_3 = 4
。这些标志的二进制值是 001
、010
和 100
.
如果您将 View.FLAG_1 | View.FLAG_3
传递给您的方法,您将传递 001 | 100
,它等于 101
。然后您的方法将了解这两个标志已通过。