5

Tôi có một đoạn với một EditText duy nhất cần bàn phím mềm để tiếp tục mở liên tục. Bàn phím bị ẩn khi màn hình xoay. Tôi đang gọi showSoftInput trong OnActivityCreated được thực hiện sau khi xoay, nhưng nó không hiển thị bàn phím.showSoftInput không hoạt động sau khi thay đổi hướng

InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(edit, 0); 

Lưu ý: Tôi không muốn sử dụng toggleSoftInput. Tôi đã thử điều đó nhưng nó kết thúc bằng cách đóng bàn phím trong một số trường hợp. Và không có cách nào để truy vấn android để xác định xem bàn phím đã được mở chưa.

Trả lời

7

Dường như showSoftInput là rất buggy với mảnh vỡ.

Thử giải pháp đầu tiên của @ TronicZomB. Nó hoạt động cho một Hoạt động với một Phân đoạn duy nhất.

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); 

Tuy nhiên, đối với một Hoạt động có phân đoạn FragmentTransactions, bạn sẽ bị buộc phải sử dụng toggleSoftInput với thông số SHOW_FORCED và HIDE_NOT_ALWAYS. HIDE_NOT_ALWAYS ngăn lệnh chuyển đổi đóng bàn phím đã mở sau khi thay đổi hướng.

InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_NOT_ALWAYS); 

Để ẩn bàn phím sau một thời gian, bạn có thể sử dụng:

imm.hideSoftInputFromWindow(activity.findViewById(android.R.id.content).getWindowToken(), 0); 
1

Hãy thử thay thế InputMethodManager như sau:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); 
+0

Tôi đã làm như sau trong onCreate:. getSherlockActivity() GetWindow() setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE. | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); – bgolson

+0

Phương pháp của bạn hoạt động cho một hoạt động đơn giản với một đoạn duy nhất. Tuy nhiên, nếu Activity đã "giao dịch" thành nhiều đoạn (Activity-> AddFragment-> ReplaceFragment), nó không còn hoạt động nữa. – bgolson

Các vấn đề liên quan