Eu tenho uma gaveta deslizante vertical na parte inferior do meu aplicativo. Quando o teclado virtual é aberto, ele empurra a aba da gaveta para cima e fica em cima do teclado. Na verdade, eu quero que ele permaneça na parte inferior da tela, ficando oculto quando o teclado é mostrado.
Mais alguém encontrou esse problema? Sabe como consertar?
Respostas:
Você pode simplesmente mudar o
windowSoftInputMode
sinalizador da sua atividade para oadjustPan
seuAndroidMainfest.xml
arquivo dentro da sua tag de atividade.Consulte a documentação oficial para mais informações.
fonte
Nenhuma das respostas funcionou para mim, mas isso funcionou:
fonte
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
para definir este valor programaticamenteNo meu caso, a razão pela qual os botões foram pressionados foi porque a vista acima deles era a
ScrollView
, e ela caiu com os botões pressionados acima do teclado, independentemente do valor queandroid:windowSoftInputMode
eu estava configurando.Consegui evitar que minha linha inferior de botões fosse pressionada pelo teclado virtual, definindo
android:isScrollContainer="false"
aScrollView
que fica acima dos botões.fonte
Você pode tentar adicionar esse atributo dinamicamente, colocando o seguinte código no
onCreate
método da sua atividade:Isso funcionou para mim, mas que:
não.
fonte
android:windowSoftInputMode="adjustPan"
no AndroidManifest.xml?getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
" em um fragmento?FragmentActivity
) e algumas visualizações anexadas (as visualizações se estendem deRelativeLayout
). Então, na visão problemática, eu fizcontroller.getWindow()...
como você disse. FuncionaEssas respostas aqui não me ajudaram. Então eu tentei isso:
Isso funcionou como um encanto, agora o cabeçalho do meu aplicativo não desaparece. É mais suave.
fonte
TabLayout
. O problema desapareceu assim que defini sua visibilidadeView.GONE
. Talvez seja hora de redesenhar meu layout.Para fazer isso programaticamente em um fragmento, você pode usar o seguinte código
Coloque isso em onResume ()
fonte
Para futuros leitores.
Eu queria um controle específico sobre esse problema, então foi isso que fiz:
De um fragmento ou atividade, oculte suas outras visualizações (que não são necessárias enquanto o teclado estiver ativado) e restaure-as para resolver este problema:
fonte
view.post(Runnable runnable)
e defini a visibilidade a partir daí. O resultado foi ótimo para mimApenas uma única linha a ser adicionada ...
Adicione a
android:windowSoftInputMode="stateHidden|adjustPan"
atividade necessária do seumanifest file
.Acabei de ser resolvido :) :)
fonte
Para usuários do xamarin, adicione esse código ao atributo Activity da classe MainActivity,
ou você pode adicionar esse código
Window.SetSoftInputMode(Android.Views.SoftInput.AdjustNothing)
ao método OnCreate da classe MainActivity.fonte
Este funcionou para mim
fonte
Até agora, as respostas não me ajudaram, pois tenho um botão e um campo textInput (lado a lado) abaixo do textView, que ficava oculto pelo teclado, mas isso resolveu o meu problema:
fonte
Adicione o seguinte código à 'atividade' do arquivo Manifest.
fonte
Este código funciona.
fonte
Este foi o melhor que funcionou para mim
Tente!
fonte
Bem, eu assisti essas respostas, mas no meu caso, caí no mesmo problema e me refugiei em uma solução muito prática e fácil que envolve colocar um atributo inocente muito pequeno na sua tag Scrollview que reside no seu arquivo xml. Isso é
Boa sorte!
fonte
Este está trabalhando para mim.
fonte
Para exibição de rolagem:
se depois de adicionar o
android:windowSoftInputMode="stateHidden|adjustPan"
seu manifesto do Android e ainda não funcionar.Isso pode ser afetado porque, quando o teclado aparecer, ele estará em uma visualização de rolagem e, se o botão / qualquer objeto não estiver na visualização de rolagem, os objetos seguirão o teclado e moverão sua posição.
Verifique seu xml onde está o botão e verifique se ele está sob o suporte de rolagem Exibir e não está fora dele.
Espero que isso ajude. : D
fonte
No meu caso, eu precisava que o teclado permanecesse oculto e, logo após o clique do botão, meu layout precisava ser ajustado, então adicionei esse comando no manifesto e ficou super correto.
fonte
Quando você deseja ocultar a exibição quando abre o teclado.
Adicione isso à sua atividade no arquivo de manifesto
fonte
Nenhum deles funcionou para mim, tente este
fonte
A janela principal da atividade não será redimensionada para liberar espaço para o teclado virtual. Em vez disso, o conteúdo da janela será automaticamente deslocado para que o foco atual nunca seja obscurecido pelo teclado e os usuários sempre possam ver o que estão digitando.
Essa pode ser a melhor solução para o que você deseja.
fonte
Tente usar isto:
fonte
Este código pode ajudá-lo. Use-o no seu
oncreate
método.fonte
Inclua no arquivo de manifesto a atividade que você deseja exibir. Mas certifique-se de não usar a tela cheia Activity
fonte
@ manifesto em sua atividade:
fonte
Resolvi meu problema adicionando
No arquivo de manifesto, adicione.
e tornar a restrição Recyclerviews isScrollContainer como false.
fonte