Đó là giải pháp của tôi:
Đầu tiên, xác định boolean cho biết thanh điều hướng có hiển thị hay không.
boolean navigationBarVisibility = true //because it's visible when activity is created
Thứ hai tạo phương pháp ẩn thanh điều hướng.
private void setNavigationBarVisibility(boolean visibility){
if(visibility){
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
navigationBarVisibility = false;
}
else
navigationBarVisibility = true;
}
Theo mặc định, nếu bạn nhấp vào hoạt động sau khi ẩn thanh điều hướng, thanh điều hướng sẽ hiển thị. Vì vậy, chúng tôi có trạng thái của nó nếu nó hiển thị, chúng tôi sẽ ẩn nó.
Bây giờ đặt OnClickListener thành chế độ xem của bạn. Tôi sử dụng một bề mặt để đối với tôi:
playerSurface.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setNavigationBarVisibility(navigationBarVisibility);
}
});
Ngoài ra, chúng ta phải gọi phương thức này khi hoạt động được khởi chạy. Bởi vì chúng tôi muốn ẩn nó ngay từ đầu.
setNavigationBarVisibility(navigationBarVisibility);