Caso alguém tenha a mesma necessidade no futuro, segue o código da solução.
O primeiro "this" é a activity (org.apache.cordova.DroidGap).final CordovaWebView activityRootView = this.appView;
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect visibleDisplayRect = new Rect();
activityRootView.getWindowVisibleDisplayFrame(visibleDisplayRect);
int heightDiff = activityRootView.getRootView().getHeight()
- (visibleDisplayRect.bottom - visibleDisplayRect.top);
Rect windowRect = new Rect();
MinhaActivity.this.getWindow().getDecorView().getWindowVisibleDisplayFrame(windowRect);
int statusBarHeight = windowRect.top;
if (heightDiff > 100) {
if (!keyBoardIsVisible) {
activityRootView.sendJavascript("$(window.document).trigger('native:showkeyboard');");
keyBoardIsVisible = true;
}
} else if (heightDiff <= statusBarHeight) {
if (keyBoardIsVisible) {
activityRootView.sendJavascript("$(window.document).trigger('native:hidekeyboard');");
keyBoardIsVisible = false;
}
}
}
});
Em 24 de abril de 2013 10:22, Eduardo Baião <eduardobaiao@gmail.com> escreveu:
No iOS, resolvi isso ouvindo as notificações nativas. Estava tentando seguir a mesma linha no Android, mas até agora sem sucesso.Desenvolvemos uma aplicação baseada em PhoneGap e, para contornar algumas bizarrices relacionadas ao controle de layout, passamos a ocultar o cabeçalho e o roda-pé das telas quando o teclado fica visível.Para isso estamos "ouvindo" eventos "showkeyboard" e "hidekeyboard" que são gerados pelo navegador. O problema é que este evento está sendo disparado sempre que a orientação muda, fazendo com que o cabeçalho/roda-pé desaparecem na hora errada. :(
Em 24 de abril de 2013 10:13, luciofm <luciofm@gmail.com> escreveu:
Não, não existe...Mas qual a necessidade disso? talvez você esteja querendo resolver o problema errado.Lúcio Maciel
luciofm@gmail.com2013/4/24 Eduardo Baião <eduardobaiao@gmail.com>Pelo jeito não é algo tão trivial de resolver...
As soluções que encontrei na internet basicamente recomendam monitorar mudanças no tamanho da view para então tentar deduzir que o teclado ficou visível.
Não existe uma solução mais robusta mesmo?
Em quarta-feira, 24 de abril de 2013 09h01min34s UTC-3, Eduardo Baião escreveu:--Obrigado!No iOS dá pra saber quando o teclado aparece usando notificações do sistema. Existe algo semelhante no Android?Bom dia pessoal,Desculpem pela pergunta newbie mas pesquisei bastante e não encontrei uma resposta simples para esta situação.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.






0 comentários:
Postar um comentário