2011-01-05 14 views
8

ho un'attività con questo Layout struttura: LinearLayout -> ScrollView -> TableLayoutAndroid: windowSoftInputMode = "adjustResize" quando ho già ScrollView nell'attività

Sotto la TableLayout ho EditText, che ho vuoi scorrere verso l'alto quando la tastiera è attiva. Quindi, secondo una certa lettura che ho fatto, ho aggiunto:

android:windowSoftInputMode="adjustResize" 

a AndroidManifest.xml, per l'attività in questione, e ha aggiunto un involucro ScrollView al file activity.xml, quindi i layout strutture dell'attività è ora la seguente: ScrollView -> LinearLayout -> ScrollView -> TableLayout

il problema: lo ScrollView interno non funziona adesso ... Credo che l'involucro ScrollView sta prendendo il controllo quando viene toccato ...

Come posso risolvere questo problema?

Qualsiasi aiuto sarà apprezzato. Grazie.

+0

tenta di evitare la situazione in cui una scrollview è da qualche parte in un'altra vista a scorrimento. puoi catturarlo, ma questo non è necessario. Ho avuto il problema. ma linearlayout> scrollview> tablelayout è sufficiente per il tuo problema. la scrollview interna si adegua automaticamente alla giusta dimensione. Vorrei anche raccomandare di aggiungere "stateVisible" all'opzione inputMode –

+1

Ma se non avvolgo l'intera attività con ScrollView, quindi l'attività non verrà ridimensionata quando l'editaxt ha cliccato ... O mi sbaglio? Ho provato senza di esso, e l'attività non si è aperta con la tastiera: la tastiera ha coperto solo il testo EditText, di nuovo ... – ofirbt

risposta

10

Ero di fronte allo stesso problema in cui la tastiera virtuale nascondeva EditTexts sul mio schermo. ho introdotto la seguente proprietà per il tag attività nel file manifesto:

android:windowSoftInputMode="stateVisible|adjustResize|adjustPan" 

Inoltre avevo bisogno di aggiungere seguente codice nella funzione OnCreate della attività:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

Questo ha risolto il problema e ha funzionato perfettamente bene su tutti gli emulatori di risoluzione e dispositivi Samsung. Non ha funzionato, tuttavia, sul dispositivo Google Nexus S e ho potuto vedere lo stesso problema di nuovo della tastiera virtuale che nasconde gli EditTexts.

+11

Questo è almeno un po 'sbagliato. Secondo [la documentazione di windowSoftInputMode] (http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft) non è possibile impostare più parametri 'adjust' (e non lo fa senso comunque). – Timmmm

+2

La documentazione non dice che non è possibile impostare più valori, solo che il risultato non è definito quindi è un po 'un trucco. – fejd

+0

Dopo ore di ricerca, questo problema risolveva il problema del ritardo di input (EditText) (fino a 5 secondi di ritardo). Grazie. –

Problemi correlati