Bạn có thể điều khiển bàn phím từ WebView, nhưng các câu trả lời khác cho thấy nó có thể không hoạt động với mọi bàn phím từng được thực hiện. Mặc dù vậy, tôi thường thấy hầu hết các bàn phím chính thống đã thực hiện hành vi mà tôi muốn.
WebView có phương thức được gọi là onCreateInputConnection
. Bạn có thể móc vào phương thức này và thêm (và/hoặc xoá) cờ vào inputType
và/hoặc imeOptions
. Có rất nhiều lá cờ có sẵn cho bạn.
Kiểm tra các tùy chọn EditorInfo, cụ thể là IME_FLAG_NAVIGATE_NEXT và IME_FLAG_NAVIGATE_PREVIOUS. Xem cách sử dụng dưới đây (mà loại bỏ các prev/cờ tiếp theo từ các tùy chọn bàn phím):
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
outAttrs.imeOptions = outAttrs.imeOptions & ~EditorInfo.IME_FLAG_NAVIGATE_NEXT &
~EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS;
return inputConnection;
}
Một điều bạn có thể thử là để che giấu những gợi ý toàn bộ thanh bằng cách sử dụng InputType cờ TYPE_TEXT_FLAG_NO_SUGGESTIONS
. Xem ví dụ bên dưới (thêm cờ "không có đề xuất" vào loại đầu vào):
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
outAttrs.inputType = outAttrs.inputType | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS;
return inputConnection;
}
Có nhiều cờ khác để chơi trực tiếp tùy chỉnh IME từ WebView. Tham khảo các nhà phát triển để các trang được liên kết và bạn hy vọng sẽ có thể đạt được các hành vi bạn đang sau khi trên hầu hết các bàn phím.
Nguồn
2014-05-04 23:18:03
Cảm ơn Gabe.Có bất kỳ điều gì tôi có thể yêu cầu nhà phát triển Android thử nghiệm về mặt này không? – artlung
Sẽ rất khó để làm như vậy. Bởi vì tất cả các bàn phím bạn về cơ bản không biết người dùng nào sử dụng. Về lý thuyết nếu tất cả bàn phím của bên thứ ba được mã hóa theo những cách tương tự, bạn thậm chí có thể yêu cầu họ phân tích cú pháp html cho các thẻ "" và cho phép họ áp dụng tùy chọn IME cho bàn phím để ghi đè. Nhưng một thành công không được đảm bảo với phương pháp này. – StingRay5