Giảm độ sáng thanh hệ thống (không dùng nữa)

Bài học này mô tả cách làm mờ thanh hệ thống (nghĩa là trạng thái và điều hướng thanh) trên Android 4.0 (API cấp 14) trở lên. Android không cung cấp tính năng tích hợp sẵn để giảm độ sáng của thanh hệ thống trên các phiên bản trước đó.

Khi bạn dùng phương pháp này, nội dung sẽ không đổi kích thước, mà sẽ đổi kích thước các biểu tượng trên thanh hệ thống Lùi lại một cách trực quan. Ngay khi người dùng chạm vào thanh trạng thái hoặc khu vực thanh điều hướng của màn hình, cả hai thanh đều hiển thị đầy đủ. Ưu điểm của phương pháp này phương pháp tiếp cận là các thanh vẫn hiện diện nhưng chi tiết của chúng bị che khuất, do đó tạo nên trải nghiệm sống động mà vẫn dễ dàng truy cập vào các quán bar.

Giảm độ sáng thanh trạng thái và thanh điều hướng

Bạn có thể làm mờ các thanh trạng thái và điều hướng bằng cách sử dụng Cờ SYSTEM_UI_FLAG_LOW_PROFILE như sau:

Kotlin

// This example uses decor view, but you can use any visible view.
activity?.window?.decorView?.apply {
    systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE
}

Java

// This example uses decor view, but you can use any visible view.
View decorView = getActivity().getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;
decorView.setSystemUiVisibility(uiOptions);

Ngay khi người dùng chạm vào thanh trạng thái hoặc điều hướng, cờ sẽ bị xoá, khiến cho các thanh này không được đề cập. Sau khi cờ bị xoá, ứng dụng của bạn cần đặt lại nếu bạn muốn giảm độ sáng của các thanh một lần nữa.

Hình 1 cho thấy một hình ảnh thư viện trong đó thanh điều hướng bị làm mờ (lưu ý rằng ứng dụng Thư viện ẩn hoàn toàn thanh trạng thái; tính năng không giảm độ sáng). Lưu ý rằng thanh điều hướng (bên phải của hình ảnh) có các chấm trắng mờ ở trên để thể hiện các công cụ điều hướng:

thanh hệ thống

Hình 1. Thanh hệ thống bị làm mờ.

Hình 2 cho thấy cùng một hình ảnh thư viện, nhưng với các thanh hệ thống được hiển thị:

thanh hệ thống

Hình 2. Thanh hệ thống hiển thị.

Hiển thị thanh trạng thái và điều hướng

Nếu bạn muốn xoá cờ được đặt bằng phương thức lập trình setSystemUiVisibility(), bạn có thể làm như vậy như sau:

Kotlin

activity?.window?.decorView?.apply {
    // Calling setSystemUiVisibility() with a value of 0 clears
    // all flags.
    systemUiVisibility = 0
}

Java

View decorView = getActivity().getWindow().getDecorView();
// Calling setSystemUiVisibility() with a value of 0 clears
// all flags.
decorView.setSystemUiVisibility(0);