13

Trong đơn đăng ký của tôi, tôi có ListView có chân trang chứa chế độ xem tùy chỉnh với một bên cạnh là EditText. Ở trên cùng ngồi một thanh hành động. Hoạt động hiện đang sử dụng SOFT_INPUT_ADJUST_RESIZE (adjustResize) làm chế độ nhập mềm và không đóng bàn phím khi cuộn.Có thể luôn hiển thị thanh tác vụ khi sử dụng adjustPan làm chế độ nhập mềm không?

Để hiển thị thêm danh sách tôi muốn xóa bàn phím khi cuộn và để có được hành vi cuộn mượt mà hơn, tôi muốn thay đổi để SOFT_INPUT_ADJUST_PAN (adjustPan) được sử dụng. Tuy nhiên, nếu tôi thay đổi thành adjustPan, toàn bộ chế độ xem, bao gồm cả thanh tác vụ, sẽ được đẩy lên. Tôi muốn chế độ xem danh sách được đẩy nhưng thanh tác vụ vẫn ở trên cùng mọi lúc. Điều đó có thể làm được không? Nếu không, bạn có thể sử dụng adjustResize và nhận hoạt ảnh thay đổi kích thước mượt mà không?

Cho đến nay tôi đã cố gắng:

  • Yêu cầu Window.FEATURE_ACTION_BAR_OVERLAY, nhưng điều đó không giúp mặc dù các tài liệu nghe đầy hứa hẹn.
  • Di chuyển xung quanh vùng chứa thanh tác vụ tùy thuộc vào việc bàn phím mềm có hiển thị hay không, kết quả trông giống như một bản hack không ổn định, vì vậy tôi đã xóa nó.
  • Cho đến nay tôi đã loại trừ adjustResize, do hành vi vẽ xảy ra khi cuộn, thu nhỏ bàn phím và thay đổi kích thước danh sách xem cùng một lúc. Có cách nào để thực hiện thay đổi kích thước hoạt ảnh mượt mà không?
+0

bạn đã hoàn thành công việc chưa? Tôi có vấn đề tương tự – Jacky

+0

Thật không may là không. – fejd

+0

@fejd Tôi đang đối mặt với cùng một vấn đề. Bạn có thể vui lòng cập nhật phương pháp tiếp cận bạn đã thực hiện để giải quyết vấn đề này không? – Ammar

Trả lời

0

cho adjustPan

đặt dưới mã trong dòng khai hoạt động của bạn trong tập tin manifest.xml

android:windowSoftInputMode="adjustPan" 

như

<activity 
     android:name="activity" 
     android:windowSoftInputMode="adjustPan" > 
</activity> 

cho remove Bàn phím trong khi scrall

trong khi bạn nhận được kết quả tại thời điểm đó thực thi mã dưới đây

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 

bằng cách này bạn có thể xóa keybord từ màn hình.

+0

Cảm ơn nó hoạt động cho tôi. –

+1

Tôi nghĩ câu trả lời này không giải quyết được vấn đề trong câu hỏi ở đây – Tony

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