2012-08-30 5 views
9

Sto usando una scrollview all'interno di un layout relativo.Come posso visualizzare il layout della mia scroll sopra la tastiera?

Potrei essere in grado di scorrere fino alla fine della pagina in tutti i telefoni cellulari senza tastiera, in alcuni telefoni potrei essere in grado di visualizzare il layout di scorrimento completamente quando la tastiera è accesa. ie) - la fine della scrollview sopra la tastiera.

Il problema che ho analizzato è a causa del tipo di tastiera varia in diversi dispositivi Android.

Ottenuto alcune risposte per aggiungere windowSoftInputMode nel manifest di attività.

aggiunto anche: android:windowSoftInputMode="stateHidden|adjustResize"

Ma ancora sto ottenendo lo stesso problema. Se hai una soluzione o hai affrontato il problema, condividi le tue idee. Grazie per il tuo tempo.

+0

Sarebbe davvero utile se si potesse riformulare la domanda e indicare chiaramente il problema. Qual è il comportamento esatto che sta accadendo che non vuoi? Vuoi che la scrollview non venga coperta dalla tastiera e si alzi quando viene visualizzata la tastiera? –

+0

È necessario pubblicare il codice XML anche del proprio layout. – MKJParekh

+0

@DanielSmith sì. Questo è esattamente ciò di cui ho bisogno per quello che dici. – arnp

risposta

3

Mi sono imbattuto in questa domanda esaminando un problema simile. android:windowSoftInputMode="adjustResize" funziona a volte, non altre volte. Perchè no?

Questa risposta parla di un tema a schermo intero Android. Honeycomb (3.1) adjustResize no longer working?

Per me il problema era questa chiamata qui: getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

Impostazione bandiere per fullscreen potrebbero compromettere lo scorrimento quando apparve la tastiera.

+0

sì, ho risolto anche io prima il problema era a schermo intero. – arnp

1

provare questo codice in onCreate:

getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 
+0

nessun cambiamento aggiungendo questo – arnp

+0

Provare a rimuovere "android: windowSoftInputMode =". StateHidden | adjustResize" e quindi aggiungere il codice di cui sopra in OnCreate –

+0

Non funziona tizio – arnp

0

si può mettere la configurazione su qualsiasi attività nel AdroidManifest.xml, in questo modo ...

<activity android:name=".views.ViewportActivity" 
        **android:windowSoftInputMode="adjustPan|adjustResize"** 
        android:label="@string/app_name" 
        android:configChanges="locale" 
        android:screenOrientation="portrait" 
        android:theme="@android:style/Theme.NoTitleBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
      </intent-filter> 
     </activity> 
+0

sto già usando questo – arnp

+0

questo è quello che uso ed è lavora per me. – IamStalker

1

Questi altre risposte dovrebbero essere risolvere il tuo problema, quindi, mentre sono riluttante a suggerire la seguente soluzione, la lancerò là fuori nel caso in cui venissi premuta per un po 'di tempo/non facendo un progetto dove ciò è terribilmente critico: usa un OnGlobalLayoutListener.

Non c'è davvero alcun modo per sapere se una softKeyboard è stata sollevata (purtroppo), ma ciò che si potrebbe fare è regolare il layout per dare la stanza della tastiera sotto la scrollview (cioè resettare l'altezza per essere l'altezza corrente - l'altezza della tastiera).

C'è an answer here che spiegherà come farlo molto bene. Di nuovo, non sono completamente chiaro su quale sia il tuo problema perché non abbiamo visto il codice, ecc. E questo è difficile da diagnosticare perché le altre risposte non risolvono il problema ... ma se sei davvero bloccato, dagli una prova :)