2010-12-30 41 views
8

Tôi đã tìm thấy this bài đăng cũ chắc chắn giúp giải quyết vấn đề của mình, nhưng tôi nhận thấy rằng nó dường như không thực sự giải quyết được vấn đề của tôi. Tôi đã thu thập được rằng tôi cần phải đặt android: windowSoftInputMode = "adjustPan" cho hoạt động của mình. Nhưng vấn đề là nó chỉ đơn giản là không pan ENOUGH.Chồng chéo bàn phím mềm với trường EditText

Trường văn bản hướng xuống dưới cùng của chế độ xem và khi bàn phím hiển thị, chế độ xem thay đổi một chút nhưng chỉ ở phía trên cùng của EditText. Trường văn bản đã bật tự động hoàn tất và khi nó bắt đầu hiển thị các tùy chọn tự động hoàn thành, chế độ xem sẽ giảm xuống một chút, nhưng thực sự thậm chí còn bị che khuất hơn bởi các tùy chọn tự động hoàn tất. Nó làm cho trường nhập văn bản rất khó sử dụng vì bạn không thể nhìn thấy bất cứ điều gì bạn đang gõ.

Đây là trường nhập nhiều dòng và khi văn bản cuộn đến dòng tiếp theo, chế độ xem sẽ nằm sâu hơn, vì vậy bạn có thể thực sự thấy (các) dòng văn bản trước đó. Nhưng bạn không thể nhìn thấy những gì bạn đang gõ, mà tôi nghĩ là khá quan trọng.

Có ai có bất kỳ suy nghĩ nào về việc giải quyết vấn đề này không?

+0

Vì vậy, ý tưởng hay nhất tôi có là chỉ khiến các trường phía trên trở thành "vô hình" hoặc "biến mất" nhưng đó chắc chắn không phải là giải pháp lý tưởng. Cảm ơn sự giúp đỡ của Phobos nhưng tiếc là tất cả các giải pháp đó là thu hẹp chính trường mà tôi đang cố gắng giữ lại sự tập trung, đó không phải là những gì tôi đang tìm kiếm. –

Trả lời

10

Vì vậy, tôi đã tìm thấy những gì dường như là nguyên nhân của vấn đề. Trong tệp AndroidManifest.xml của tôi, tôi đã đặt

<uses-sdk android:minSdkVersion="3" /> 

Rõ ràng, sử dụng minSdkVersion dưới "4" là gốc của sự cố. Khi thay đổi nó thành "4", bố trí xuất hiện như nó cần phải có, và EditText có dòng đầu tiên của nó ở trên cùng của bàn phím mềm một cách thích hợp.

Cảm ơn sự giúp đỡ, Phobos.

+0

Wow, cảm ơn gợi ý này! Tôi sẽ không bao giờ tìm thấy nó nếu không có nó. –

+0

Giải pháp hoàn hảo, vấn đề chính xác Tôi có –

+1

Tôi có cùng một vấn đề. Bố cục của tôi có 7 Chỉnh sửa văn bản và trên cùng của màn hình có một nút và dưới cùng của màn hình có một nút khác.Tôi đã sử dụng và android: windowSoftInputMode = "adjustPan" trong Hoạt động của tôi trong tệp AndroidManifest nhưng khi softkeyboard được mở và tôi cố gắng chuyển đến nút dưới cùng, nó không cho phép tôi xem. Tổng bố cục của tôi được thực hiện bằng cách sử dụng Bố cục tương đối. Tôi nên làm gì để xem nút dưới cùng nếu tôi đã mở bảng softkey bằng cách nhấp vào văn bản chỉnh sửa thứ hai (muốn đặt giá trị trong giây và sau đó muốn nhấp vào nút dưới cùng). –

3

Quấn giao diện người dùng của bạn trong vùng chứa ScrollView. Điều này sẽ cho phép người dùng xem toàn bộ giao diện người dùng, mặc dù bằng cách cuộn, nếu cần. Giao diện người dùng có thể không đủ lớn để cuộn mà không có bàn phím trên màn hình, nhưng khi bàn phím được hiển thị, nó sẽ giảm kích thước màn hình một cách hiệu quả.

+0

Tôi có thể hiểu sai, nhưng toàn bộ tệp layout.xml của tôi là RelativeLayout. Nếu bạn đề xuất rằng tôi quấn RelativeLayout bên trong một ScrollView (tức là ?), Tôi đã cố gắng làm điều đó và tôi đã không thành công. Nó gió lên tìm kiếm cùng một cách chính xác. Nó có thể là các thông số tôi đang sử dụng, hoặc một cái gì đó như thế, nhưng nó trông giống như cách nó đã làm. Nếu tôi không sử dụng match_parent cho chiều cao/chiều rộng và fillViewPort = "true", nó sẽ gây ra sự cố hoặc khiến bố cục xuất hiện không chính xác. Bất cứ điều gì tôi đang mất tích? –

+1

Sau khi gói bố cục của bạn trong ScrollView vô hiệu hóa adjustPan. Bất cứ lúc nào tôi có EditTexts trong giao diện người dùng chính của tôi, tôi sử dụng phương pháp này. Tôi thấy TableLayout hoạt động tốt nhất cho tôi khi tôi đang tạo một số loại giao diện người dùng mẫu. Tôi không biết bố cục của bạn là gì, nhưng hãy xem nó. Nếu RelativeLayout không hoạt động, hãy xem bạn có thể làm điều đó với TableLayout không. – Phobos

+0

Thật không may, trường EditText đang được đề cập không được đặt ở độ cao cụ thể, vì vậy điều này có vẻ không hoạt động. Chiều cao được đặt thành "match_parent" (để điền vào 'không gian còn lại' của bố cục) và kích thước của nó được dựa trên kích thước tương đối của Chế độ xem ở trên và Chế độ xem bên dưới. Vì vậy, điều xảy ra là nếu tôi sử dụng adjustResize thay vì adjustPan, trường co lại và gần như biến mất, thay vì được cuộn vào khu vực có thể xem chính xác. –

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