Câu hỏi Khoảng cách giữa bàn phím và EditText trong Android


Chế độ đầu vào mềm là "SOFT_INPUT_ADJUST_PAN"và khi bàn phím được hiển thị, EditText di chuyển lên để có thể nhìn thấy, nhưng bàn phím và phía dưới của txt luôn gắn bó với nhau như được thấy trên ảnh chụp màn hình, tôi muốn có khoảng cách giữa chúng, có thể không?

Chế độ nhập cũng phải ở dạng "SOFT_INPUT_ADJUST_PAN".

Xin lỗi mẫu tiếng anh của tôi, Thanks in Advance ...

Screenshot:


22
2017-07-13 12:47


gốc


Tại sao nhấn mạnh vào việc sử dụng "adjustPan"? Sử dụng "adjustResize" sẽ không có vấn đề đó. - arjoan
Khi sử dụng "adjustResize", vấn đề lớn nhất là thanh điều hướng ở phía dưới đang dịch chuyển lên đầu bàn phím. - altosh


Các câu trả lời:


Tôi áp dụng các phương pháp trên làm việc cho tôi Đặt android: windowSoftInputMode trên Activity thành "adjustPan" hơn tôi đã thêm padding vào edittext với lực hấp dẫn dưới và nó hoạt động như sự quyến rũ. Cảm ơn,


3
2017-08-20 08:26



Padding là những gì làm việc, bởi vì không giống như lợi nhuận nó được nhìn thấy bởi người quản lý cửa sổ như nội bộ để xem. Ví dụ: editText.setPadding (0, 0, 0, 40) sẽ khiến khung nhìn của bạn nhận thêm 40px không gian bên dưới khi bàn phím xuất hiện. Tôi không phải đặt trọng lực cho việc này. - Ian Lovejoy
điều gì sẽ xảy ra với văn bản bên trong văn bản nếu bạn làm điều này? - filthy_wizard
@ user1232726 nếu bạn đặt chiều cao của văn bản chỉnh sửa thành wrap_content, thì văn bản của bạn sẽ xuất hiện ngoài trung tâm nhưng tất cả sẽ hiển thị. Câu chuyện khác nhau nếu, ví dụ, bạn đặt chiều cao văn bản chỉnh sửa thành 41dp và paddingBottom thành 40dp - Ed Lee


Có thể điều này giúp bạn:

Nếu dòng này được viết trong mã của bạn thì hãy xóa nó:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

HOẶC LÀ:

Bạn không nên đặt layout_width và layout_heights với giá trị pixel rõ ràng. Thay vào đó, hãy sử dụng wrap_parent hoặc là fill_parent khi thích hợp.

HOẶC LÀ:

Nếu bạn đã đặt minSdkVersion đến 3 sau đó thay đổi nó thành minSdkVersion=4

Chỉnh sửa:

Bộ android: windowSoftInputMode trên Hoạt động để "adjustPan"

HOẶC LÀ:

Thêm mã này vào hoạt động chính của bạn trong setOnTouchListener() của bạn EditText:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED);

2
2017-07-13 12:56



Cảm ơn bạn đã trả lời nhưng không ai trong số họ làm việc cho tôi. - altosh
Buddy xem mã đã chỉnh sửa nó có thể giúp bạn .. - Bhavin Nattar
Cảm ơn bạn, chế độ nhập phải ở SOFT_INPUT_ADJUST_PAN. Khi bàn phím hiển thị, nó sẽ dính vào edittexts (ví dụ edittext ở cuối màn hình). Nó là ok nhưng tôi muốn có một số không gian giữa edittext và bàn phím. - altosh
Chào mừng bạn thân .. những gì tôi đã làm cho đến bây giờ đề nghị bạn .. và thử sau khi thêm marginBottom Attribute trong EditText trong xml và nếu bất kỳ gợi ý nào trong số này phù hợp với bạn thì vui lòng đánh dấu câu trả lời này .. - Bhavin Nattar
@altosh: Buddy nếu câu trả lời của tôi đã giúp bạn sau đó xin đánh dấu vào nó để người khác có thể biết rằng đó là câu trả lời đúng ... - Bhavin Nattar


Tại sao bạn không thử cái này?

android:windowSoftInputMode="adjustResize"

Tôi biết bạn muốn điều chỉnh chảo nhưng điều này sẽ giải quyết vấn đề của bạn là tốt.

Vì bạn thực sự muốn ở lại với AdjustPan, có lẽ bạn có thể thử thiết kế lại bố cục XML một chút.

Bạn cũng phải thêm phần đệm yêu cầu của mình vào phần tử container ngoài nhất trong tệp bố cục.


2
2017-07-21 20:28



Đây là công việc cho tôi. - boiledwater
không có khoảng cách giữa edittext và bàn phím mềm. không thể hình dung ra - filthy_wizard
@filthy_wizard kiểm tra phần đệm trong bố cục của bạn - Jeffrey


Chỉ cần tự hỏi, là ứng dụng của bạn toàn màn hình? nó có thanh trạng thái không? Nếu nó là cố gắng để vô hiệu hóa chế độ toàn màn hình và cố gắng để xem nếu đó giải quyết vấn đề của bạn. Tôi nhớ đã có một lỗi về điều này một thời gian trước đây.


1
2017-07-22 18:20



nó có thanh trạng thái. - altosh