Respostas:
Você está perguntando como controlar o que é visível quando o teclado virtual é aberto? Você pode querer jogar com o windowSoftInputMode . Veja os documentos do desenvolvedor para mais discussão.
android:fitsSystemWindows="true"
à sua visualização root para resolver isso.
Eu tive os mesmos problemas. Tente o seguinte código:
android:windowSoftInputMode="adjustPan"
adicione-o ao seu manifest.xml na tag de atividade da atividade que contém a entrada. exemplo:
<activity
android:name=".Activities.InputsActivity"
...
android:windowSoftInputMode="adjustPan"
/>
adjustResize
faria, mas abrange também os meus campos de entrada
Eu tive o mesmo problema em que a tecla programável estava no topo das visualizações EditText, que foram colocadas na parte inferior da tela. Consegui encontrar uma solução adicionando uma única linha à atividade relevante do meu arquivo AndroidManifest.xml.
android:windowSoftInputMode="adjustResize|stateHidden"
É assim que toda a tag de atividade se parece:
<activity
android:name="com.my.MainActivity"
android:screenOrientation="portrait"
android:label="@string/title_activity_main"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
Aqui, o valor mais importante é o AdjustResize. Isso mudará toda a interface do usuário para dar espaço para o teclado programável.
adjustResize|stateHidden
e não fez nenhuma diferença adjustPan
.
Por que não tentar adicionar um ScrollView para envolver o que você deseja rolar? Aqui está como eu fiz isso, onde na verdade deixo um cabeçalho no topo que não rola, enquanto os widgets da caixa de diálogo (em particular os EditTexts) rolam quando você abre o teclado virtual.
<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>
Normalmente, eu teria um LinearLayout dentro do ScrollView, mas isso é com você. Além disso, definir o estilo da barra de rolagem como outsideInset ajuda, pelo menos nos meus dispositivos.
Tudo que você precisa fazer é
android:isScrollContainer="true"
fonte: http://www.davidwparker.com/2011/08/25/android-fixing-window-resize-and-scrolling/
Desculpe por reviver um thread antigo, mas ninguém mencionou a configuração android:imeOptions="flagNoFullscreen"
no seu elemento EditText
android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"
funciona para o Android EditText, enquanto não funciona para webview ou xwalkview. Quando o teclado virtual oculta a entrada no webview ou no xwalkview que você usaandroid:windowSoftInputMode="adjustResize"
Eu acredito que você pode fazer rolagem usando o trackball, que pode ser alcançado programaticamente através de métodos de seleção, mas é apenas uma idéia. Eu sei que o método trackball normalmente funciona, mas quanto à maneira exata de fazer isso e fazê-lo funcionar a partir do código, não tenho certeza.
Espero que ajude.
adicione essa linha única à sua atividade relativa, onde a capa do teclado edita o método de atividade text.inside onCreat ().
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Se o campo EditText estiver coberto pelo KeyBoard, use o seguinte código:
EditText= findViewById(R.id.edittext)
EditText?.getParent()?.requestChildFocus(EditText,EditText)
Se você deseja que o Cursor esteja no EditText Focado, use-o EditText.requestFocus()
após o EditText?.getParent()?.requestChildFocus(EditText,EditText)
que ajuda a obter o foco e o Cursor no EditText Focado.
Edite seu AndroidManifest.xml
android:windowSoftInputMode="adjustResize"
Adicione isso à sua visualização raiz do arquivo Layout.
android:fitsSystemWindows="true"
Isso é tudo.