2012-04-09 37 views
11

Hiện tôi đang sử dụng điện thoại di động để phát triển ứng dụng dành cho thiết bị di động. Trong màn hình Đăng nhập của tôi, khi tôi chọn một trường văn bản, chế độ xem co lại theo chiều ngang khi bàn phím trượt lên. Điều này chỉ xảy ra cho Android và không phải iOS.PhoneGap: Có cách nào để ngăn bàn phím đổi kích thước chế độ xem không?

Điều này liên quan đến tôi vì tôi có thanh công cụ dưới cùng là position:absolute; bottom:0; và thanh công cụ này được đẩy lên trong Android khi bàn phím hiển thị. Trong iOS, bàn phím chỉ đơn giản là phủ lên nó.

Trả lời

26

Trong AndroidManifest.xml vào hoạt động chính của bạn thêm dòng sau:

android:windowSoftInputMode="adjustPan" 

android:configChanges="orientation|keyboardHidden" 

Trong index.html thêm gì traumalles chỉ ra:

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" /> 
+2

bằng cách đi tuyến đường này, có thể bàn phím sẽ không bao gồm hộp nhập liệu. Từ đó, người dùng sẽ không thấy nội dung họ đang nhập. – darewreck

+0

@darewreck làm cho một điểm tốt, bởi vì tôi đã có vấn đề này chính xác và thực hiện giải pháp này và nó sẽ không làm việc cho tôi vì lý do chính xác này.Đối với tôi, tôi nghĩ tôi sẽ phải tìm một giải pháp để tìm ra cách xác định xem bàn phím có được hiển thị hay không, gán cho một biến và chuyển đổi khả năng hiển thị của thanh đáy của tôi dựa trên đó, vì hành vi của trường tốt hơn cài đặt gốc. Tuy nhiên, người trả lời chính xác, nhưng điểm của darewreck rất hợp lệ – chairmanmow

0

Thêm

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" /> 

để bạn đầu-tag

+9

Tính năng này không hoạt động. – AlexCheuk

+0

Bạn đã thêm thẻ hoạt động thứ hai vào tệp AndroidManifest.xml chưa? Thay đổi tên gói thành com.phonegap.DroidGap cho Phonegap 1.4.x và trước đó là – allesmi

0

Để đầu trên Eu Vid's answer, tôi muốn chỉ ra rằng Cordova 6.4.0 trở lên đã hỗ trợ cho <edit-config /> mà chúng ta có thể sử dụng để sửa đổi AndroidManifest.xml.

Trước tiên, bạn cần thêm thuộc tính không gian tên Android. Trong số config.xml, hãy thêm thuộc tính mới xmlns:android="http://schemas.android.com/apk/res/android" vào <widget />. khối phụ tùng của bạn sẽ giống như thế này:

<widget 
    id="com.my.app" 
    version="0.0.1" 
    xmlns="http://www.w3.org/ns/widgets" 
    xmlns:cdv="http://cordova.apache.org/ns/1.0" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

Bây giờ thêm đoạn mã sau bên<widget />:

<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application/activity"> 
    <activity android:configChanges="orientation|keyboardHidden" android:windowSoftInputMode="adjustPan" /> 
</edit-config> 

Bây giờ khi bạn gọi cordova platform add android, các AndroidManifest.xml sẽ được tạo ra với các thiết lập ở trên.

Lưu ý:

  • Đoạn mã trên không ghi đè khối <activity> nhưng kết hợp với nó; nó sẽ chỉ thay thế các thuộc tính xml được chỉ định.
  • Nếu trước đó bạn đã gọi cordova platform add android, bạn có thể xóa bằng cách nhập cordova platform rm android trước trước khi thêm lại.
Các vấn đề liên quan