Trong Android M, chúng tôi có khả năng làm cho các biểu tượng trên thanh trạng thái trở nên tối. Để làm được điều đó chúng ta có thể xác định thuộc tính trong xml của chủ đề:Thanh trạng thái Android M Light và Dark theo lập trình - làm thế nào để làm cho nó tối lại?
<item name="android:windowLightStatusBar">true</item>
HOẶC chúng mèo đặt nó ở thời gian chạy với mã này:
View someView = findViewById(R.id.some_view);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
someView.setSystemUiVisibility(someView.getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
Và nó thực sự hoạt động tốt. Nhưng câu hỏi là làm thế nào để thiết lập đúng chế độ thanh trạng thái thành tối khi chạy?
tôi đã cố gắng mà các biến thể:
// Makes status bar mode dark, but also hides it along with all navigation views.
someView.setSystemUiVisibility(someView.getSystemUiVisibility() | ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
// Does nothing
someView.setSystemUiVisibility(someView.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
// Also does nothing
someView.setSystemUiVisibility(someView.getSystemUiVisibility()^View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
Vậy làm thế nào nó có thể được thực hiện trong một cách đúng đắn?
Tại sao setSystemUiVisibility() là một phương thức của lớp Chế độ xem? –
@ capt.swag Tôi nghĩ đó là 'View view = window.getDecorView();'. –