Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Re: Notificação que avise quando o teclado alternar entre visível e invisível

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:
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. :(

No iOS, resolvi isso ouvindo as notificações nativas. Estava tentando seguir a mesma linha no Android, mas até agora sem sucesso.



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.com


2013/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:
Bom dia pessoal,

Desculpem pela pergunta newbie mas pesquisei bastante e não encontrei uma resposta simples para esta situação.

No iOS dá pra saber quando o teclado aparece usando notificações do sistema. Existe algo semelhante no Android?

Obrigado!


--
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.
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário