Como posso exibir meu layout de rolagem acima do teclado?

9

Estou usando uma rolagem dentro de um layout relativo.

Eu poderia rolar até o final da página em todos os celulares quando sem o teclado, em alguns celulares eu poderia ver o layout de rolagem completamente quando o teclado estava ligado. ie) - o final da scrollview acima do teclado.

O problema que analisei é que o tipo de teclado varia em diferentes dispositivos Android.

Tem algumas respostas para adicionar windowSoftInputMode no manifesto de atividade.

Também adicionado: android:windowSoftInputMode="stateHidden|adjustResize"

Mas ainda estou recebendo o mesmo problema. Se você tiver solução ou tiver enfrentado o problema, compartilhe suas ideias. Obrigado pelo seu tempo.

    
por arnp 30.08.2012 в 09:56
fonte

4 respostas

3

Eu me deparei com essa questão analisando um problema semelhante. android:windowSoftInputMode="adjustResize" funciona algumas vezes, não outras vezes. Porque não?

Esta resposta fala sobre um tema de tela cheia do Android. Honeycomb (3.1) adjustResize não funciona mais?

Para mim, o problema foi esta chamada aqui: getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

Configurar os sinalizadores para tela cheia impediria a rolagem correta quando o teclado aparecesse.

    
por jriggs 15.03.2013 / 20:06
fonte
1

Experimente este código em onCreate:

getWindow().setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    
por Eldhose M Babu 30.08.2012 / 10:22
fonte
1

Essas outras respostas devem resolver o seu problema, por isso, embora eu hesite em sugerir a seguinte solução, vou jogá-la lá para o caso de você estar com pouco tempo ou não fazendo um projeto onde isso é terrivelmente crítico: use um OnGlobalLayoutListener.

Não há realmente nenhuma maneira de saber se um softKeyboard foi levantado (infelizmente), mas o que você poderia fazer é ajustar seu layout para dar a sala de teclado abaixo da sua scrollview (ou seja, redefinindo a altura para ser a altura atual altura do teclado).

Existe uma resposta aqui que será Explique como fazer isso muito bem. Mais uma vez, não estou totalmente claro sobre qual é o seu problema porque não vimos código, etc., e isso é difícil de diagnosticar porque as outras respostas não estão resolvendo o problema ... mas se você está realmente preso - dê-lhe uma tentativa:)

    
por Daniel Smith 30.08.2012 / 21:33
fonte
0

Você pode colocar a configuração em qualquer atividade no AdroidManifest.xml, assim ...

 <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>
    
por IamStalker 30.08.2012 / 10:25
fonte