Antworten:
Fragen Sie, wie Sie steuern können, was beim Öffnen der Softtastatur sichtbar ist? Möglicherweise möchten Sie mit dem windowSoftInputMode spielen . Weitere Informationen finden Sie in den Entwicklerdokumenten .
android:fitsSystemWindows="true"
Ihrer Stammansicht hinzu , um dies zu lösen.
Ich hatte die gleichen Probleme. Versuchen Sie folgenden Code:
android:windowSoftInputMode="adjustPan"
Fügen Sie es Ihrer manifest.xml im Aktivitäts-Tag der Aktivität hinzu, die die Eingabe enthält. Beispiel:
<activity
android:name=".Activities.InputsActivity"
...
android:windowSoftInputMode="adjustPan"
/>
adjustResize
es tun würde, aber es deckt auch meine Eingabefelder ab
Ich hatte das gleiche Problem, bei dem sich das Softkeyboard über den EditText-Ansichten befand, die sich am unteren Bildschirmrand befanden. Ich konnte eine Lösung finden, indem ich der relevanten Aktivität meiner AndroidManifest.xml-Datei eine einzelne Zeile hinzufügte.
android:windowSoftInputMode="adjustResize|stateHidden"
So sieht das gesamte Aktivitäts-Tag aus:
<activity
android:name="com.my.MainActivity"
android:screenOrientation="portrait"
android:label="@string/title_activity_main"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
Hier ist der wichtigste Wert die adjustResize. Dadurch wird die gesamte Benutzeroberfläche nach oben verschoben, um Platz für das Softkeyboard zu schaffen.
adjustResize|stateHidden
und es machte keinen Unterschied adjustPan
.
Warum nicht versuchen, eine ScrollView hinzuzufügen, um alles zu verpacken, was Sie scrollen möchten? Hier ist, wie ich es gemacht habe, wo ich tatsächlich eine Kopfzeile oben lasse, die nicht scrollt, während die Dialog-Widgets (insbesondere die EditTexts) scrollen, wenn Sie die Soft-Tastatur öffnen.
<LinearLayout android:id="@+id/HeaderLayout" >
<!-- Here add a header or whatever will not be scrolled. -->
</LinearLayout>
<ScrollView android:id="@+id/MainForm" >
<!-- Here add your edittexts or whatever will scroll. -->
</ScrollView>
Normalerweise habe ich ein LinearLayout in der ScrollView, aber das liegt bei Ihnen. Außerdem hilft es zumindest auf meinen Geräten, den Bildlaufleistenstil aufsideInset festzulegen.
Alles was Sie tun müssen, ist
android:isScrollContainer="true"
Quelle: http://www.davidwparker.com/2011/08/25/android-fixing-window-resize-and-scrolling/
Es android:imeOptions="flagNoFullscreen"
tut uns leid, dass Sie einen alten Thread wiederbelebt haben, aber niemand hat die Einstellung in Ihrem EditText-Element erwähnt
android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"
funktioniert für Android EditText, während es nicht für Webview oder Xwalkview funktioniert. Wenn die Softtastatur die Eingabe in Webview oder Xwalkview ausblendet, die Sie verwendenandroid:windowSoftInputMode="adjustResize"
Ich glaube, dass Sie es mit dem Trackball zum Scrollen bringen können, was möglicherweise programmgesteuert durch Auswahlmethoden erreicht wird, aber es ist nur eine Idee. Ich weiß, dass die Trackball-Methode normalerweise funktioniert, aber ich bin mir nicht sicher, wie genau dies funktioniert und wie es aus Code funktioniert.
Hoffentlich hilft das.
Fügen Sie diese einzelne Zeile zu Ihrer relativen Aktivität hinzu, in der die Tastaturabdeckung text.inside onCreat () bearbeitet.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Wenn das EditText-Feld vom KeyBoard abgedeckt wird, verwenden Sie den folgenden Code:
EditText= findViewById(R.id.edittext)
EditText?.getParent()?.requestChildFocus(EditText,EditText)
Wenn Sie möchten, dass sich der Cursor im fokussierten EditText befindet, verwenden Sie ihn EditText.requestFocus()
nach dem EditText?.getParent()?.requestChildFocus(EditText,EditText)
, um den Fokus und den Cursor im fokussierten EditText zu erhalten.
Bearbeiten Sie Ihre AndroidManifest.xml
android:windowSoftInputMode="adjustResize"
Fügen Sie dies Ihrer Stammansicht der Layoutdatei hinzu.
android:fitsSystemWindows="true"
Das ist alles.