2012-08-15 2 views
3

나는이 질문을 몇 번 본 적이 있습니다. 나는 엄청난 바보 같은 짓을 한 것 같아 피어 프로그래밍에 +1을 쓰지 못했다.PhoneGap의 Softkeyboard는 입력 요소를 다룹니다

PhoneGap (Cordova) 2.0.0으로 Android (SDK 버전 8 이상) 용으로 개발. 나는 사용자 설정 입력을위한 전체 페이지 형식을 가지고 있으며, 페이지 아래로 등 간격으로 배치 된 요소가 있으며 맨 아래에 취소 단추와 제출 단추가 있습니다. 사용자가 상위 요소를 터치하면 소프트 키 보드가 나타나며 아무런 문제가 없습니다. 그러나 사용자가 소프트 키보드 아래에있는 요소를 터치하면 (나타나는 경우) 키보드가 튀어 나와 키보드로 덮여집니다.

나는 다양한 주술과 안드로이드의 화신 시도 : 매니페스트 파일 (http://solutions.michaelbrooks.ca/2011/07/05/android-soft-keyboard-resizes-web-view/http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft 기준)에 windowSoftInputMode = "adjustPan을"하지만 아무 소용이 요소가 키보드에 의해 숨겨집니다.

내 매니페스트 파일의와 관계있는 부분이

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".title" 
     android:label="@string/title" android:screenOrientation="portrait"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" 
     android:windowSoftInputMode="adjustPan" 
    </activity> 
</application> 

와 (내가 변화에 대한 몇 가지 게시물을 본 적이)에 index.html을의 뷰포트 섹션

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0"> 

어떤 포인터처럼 보인다 크게 환영받을 것입니다

건배

+0

당신이 게시물을 확인하실 수 있습니다, 그것은 잘 작동 - http://stackoverflow.com/a/29706953/4071287 –

답변

4

대신

android:windowSoftInputMode="adjustPan" 

android:windowSoftInputMode="adjustResize" 
+2

나를 위해 작동하지 않습니다 .... 유 도움을 plz 수 있습니다 ... –

0
android:windowSoftInputMode="adjustResize" 

그것은 내 휴대 전화에서 잘 작동 시도 (4.1)

0

이 안드로이드 2.x 및 4 초에, 너무 나를 위해 큰 문제가되고있다. 엑스.

내가 틀렸다면 정정 해주세요. 그러나 android : windowSoftInputMode는 기본 개발 용이며 활동이 시작될 때 적용됩니다. 이 설정을 변경해도 PhoneGap/Cordova 프로젝트에 영향을주지 않은 것으로 보입니다. 편집 필드에 포커스를 받으면

, 나는 명시 적으로 위치로 창을 스크롤 :

onFocusEditField = function(comp, e, eopts) { 
    if(Ext.os.is.Android) { 
     var ost = comp.element.dom.offsetTop; 
     this.getParent().getParent().getScrollable().getScroller().scrollTo(0, ost-50); 
    } 
}; 

참고 : 센차 터치 2.x 또는 3.0을 사용하여