I figured it out! Không chắc liệu đây có phải là cách các chàng trai trong liên kết cửa hàng trò chơi của bạn đã làm điều đó hay không, nhưng đây là điều đã làm việc cho tôi. Ngoài ra, tôi nhận ra bài đăng này đã hơn một tuổi, nhưng tôi vẫn trả lời nó chỉ trong trường hợp có ai đó phát hiện ra điều này khi cố gắng tạo ra một bàn phím trong suốt.
"Thứ gì đó" dưới chế độ xem của bạn thực sự không có gì - đó là không gian trống. Bàn phím của bạn đã đẩy toàn bộ tầm nhìn lên và ra khỏi con đường để nhường chỗ cho chiều cao của nó, để lại khoảng trắng trống phía sau. Bàn phím trong suốt của bạn cho phép không gian màu trắng này hiển thị qua.
Đây là giải pháp: thay vì trả lại chế độ xem của bạn trong onCreateInputView, hãy trả lại trong chế độ onCreateCandidatesView. Đó là chế độ xem thường nằm trên bàn phím và liệt kê các đề xuất tự động sửa. Nhưng bạn sẽ sử dụng nó để chứa bàn phím thực của bạn.
Lý do bạn muốn bàn phím của mình là chế độ xem ứng cử viên là vì chế độ xem đầu vào thường xuyên nhất đẩy chế độ xem cơ bản lên. Các ứng dụng riêng lẻ có thể quyết định cách chúng muốn hoạt động khi bàn phím được hiển thị qua android: windowSoftInputMode và chế độ xem đầu vào tôn trọng tùy chọn của chúng, nhưng chế độ xem ứng viên luôn sử dụng adjustPan.
Từ tài liệu: "Lưu ý rằng vì chế độ xem ứng viên có xu hướng được hiển thị và ẩn rất nhiều, nó không ảnh hưởng đến giao diện người dùng ứng dụng giống như giao diện nhập mềm: nó sẽ không bao giờ làm thay đổi kích thước cửa sổ ứng dụng, chỉ khiến chúng bị rám nắng nếu cần để người dùng nhìn thấy tiêu điểm hiện tại. " http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html
Vì vậy, hãy trả lại chế độ xem trong suốt của bạn từ chế độ onCreateCandidatesView, trả về null từ onCreateInputView và đảm bảo gọi setCandidatesViewShown (true) để hiển thị ứng viên của bạn (tôi gọi nó trong onWindowShown).
Nguồn
2013-12-02 01:24:58
Bạn đã bao giờ tìm ra điều này chưa? Tôi đang cố gắng làm điều tương tự, và đang chạy vào cùng một vấn đề. –