Risposte:
Stai chiedendo come controllare ciò che è visibile quando si apre la tastiera virtuale? Potresti voler giocare con windowSoftInputMode . Consulta i documenti per gli sviluppatori per ulteriori discussioni.
android:fitsSystemWindows="true"
alla tua vista radice per risolvere questo.
Ho avuto gli stessi problemi. Prova il seguente codice:
android:windowSoftInputMode="adjustPan"
aggiungilo a manifest.xml nel tag attività dell'attività che contiene l'input. esempio:
<activity
android:name=".Activities.InputsActivity"
...
android:windowSoftInputMode="adjustPan"
/>
adjustResize
farebbe, ma copre anche i miei campi di input
Ho avuto lo stesso problema in cui il softkeyboard era in cima alle viste EditText che erano posizionate nella parte inferiore dello schermo. Sono stato in grado di trovare una soluzione aggiungendo una sola riga all'attività pertinente del mio file AndroidManifest.xml.
android:windowSoftInputMode="adjustResize|stateHidden"
Ecco come appare l'intero tag attività:
<activity
android:name="com.my.MainActivity"
android:screenOrientation="portrait"
android:label="@string/title_activity_main"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
Qui il valore più importante è AdjustResize. Ciò sposterà l'intera UI verso l'alto per dare spazio al softkeyboard.
adjustResize|stateHidden
e non ha fatto alcuna differenza adjustPan
.
Perché non provare ad aggiungere un ScrollView per avvolgere qualunque cosa tu voglia scorrere. Ecco come l'ho fatto, dove in realtà lascio un'intestazione in alto che non scorre, mentre i widget della finestra di dialogo (in particolare EditTexts) scorrono quando si apre la tastiera virtuale.
<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>
In genere avrei un LinearLayout all'interno di ScrollView, ma dipende da te. Inoltre, l'impostazione dello stile della barra di scorrimento su outsideInset aiuta, almeno sui miei dispositivi.
Tutto quello che devi fare è
android:isScrollContainer="true"
fonte: http://www.davidwparker.com/2011/08/25/android-fixing-window-resize-and-scrolling/
Ci scusiamo per aver rianimato un vecchio thread ma nessuno ha menzionato l'impostazione android:imeOptions="flagNoFullscreen"
nell'elemento EditText
android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"
funziona per Android EditText, mentre non funziona per webview o xwalkview. Quando la tastiera software nasconde l'input in webview o xwalkview che hai usatoandroid:windowSoftInputMode="adjustResize"
Credo che tu possa farlo scorrere usando la trackball, che alla fine potrebbe essere raggiunta programmaticamente attraverso i metodi di selezione, ma è solo un'idea. So che il metodo trackball funziona in genere, ma per quanto riguarda il modo esatto per farlo e farlo funzionare dal codice, non ne sono sicuro.
Spero che aiuti.
aggiungi questa singola riga alla tua attività relativa in cui la cover della tastiera si modifica con il metodo di attività text.inside onCreat ().
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Se il campo Modifica testo è coperto dalla tastiera Utilizzare il codice seguente:
EditText= findViewById(R.id.edittext)
EditText?.getParent()?.requestChildFocus(EditText,EditText)
Se si desidera che il cursore sia nel FocusText focalizzato, utilizzare EditText.requestFocus()
dopo il EditText?.getParent()?.requestChildFocus(EditText,EditText)
che aiuta a ottenere lo stato attivo e il cursore nel EditText focalizzato.
Modifica il tuo AndroidManifest.xml
android:windowSoftInputMode="adjustResize"
Aggiungi questo alla vista principale del file di layout.
android:fitsSystemWindows="true"
È tutto.