Tiêu điểm là để chọn các thành phần giao diện người dùng khi bạn đang sử dụng thứ gì đó ngoài cảm ứng (ví dụ: bàn phím d-pad, bàn phím, v.v.). Mọi chế độ xem đều có thể nhận tiêu điểm, mặc dù một số không thể lấy tiêu điểm theo mặc định. (Bạn có thể làm cho một chế độ xem có thể lấy tiêu điểm setFocusable(true)
và buộc nó phải được lấy nét bằngrequestFocus()
.)
Tuy nhiên, điều quan trọng cần lưu ý là khi bạn ở chế độ cảm ứng, tính năng lấy nét sẽ bị tắt . Vì vậy, nếu bạn đang sử dụng ngón tay của mình, việc thay đổi tiêu điểm theo chương trình sẽ không làm được gì cả. Ngoại lệ đối với các dạng xem nhận đầu vào từ trình chỉnh sửa đầu vào. An EditText
là một ví dụ như vậy. Đối với tình huống đặc biệt này setFocusableInTouchMode(true)
được sử dụng để cho bàn phím mềm biết nơi gửi đầu vào. An EditText
có cài đặt này theo mặc định. Bàn phím mềm sẽ tự động bật lên.
Nếu bạn không muốn bàn phím mềm tự động bật lên thì bạn có thể tạm thời tắt nó như @abeljus đã lưu ý:
InputMethodManager inputManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
Tuy nhiên, khi người dùng nhấp vào EditText
, nó vẫn sẽ hiển thị bàn phím.
Đọc thêm: