Empurrar ListView quando o teclado aparece sem adjustPan

Eu estou tentando criar uma atividade com um listview e uma mensagem de envio na parte inferior. O problema é que quando o teclado é mostrado, em vez de empurrar o conteúdo do fundo, é apenas escondê-lo. Eu tentei usar o adjustPan, mas ele empurra a visão do buraco para cima (então não há como ver os elementos principais do listview e também de actionbar desaparece).

Se você der uma olhada no WhatsApp ou Line, a funcionalidade é que quando o último item da lista é mostrado na parte inferior da tela, o teclado empurra para cima o listview (sem tirar a barra de ação ou os primeiros elementos da tela ), e quando o último item da lista não é mostrado (depois de alguma rolagem para cima) o teclado fica oculto na lista inferior (um adjustResize normal).

Alguém lidou com esse problema?

obrigado

EDITAR:

Vou tentar colocar um exemplo visual:

Então vamos dizer isso o ListView:

---item 1---  
---item 2---  
---item 3---  
---item 4---  
---EditText---

O editText não faz parte do ListView, mas um LinearLayout alinhado na parte inferior. Quando o teclado é mostrado, o ListView se torna assim (os itens 3 e 4 são ocultados pelo teclado):

---item 1---  
---item 2---  
---EditText---
---Keyboard---  

e o que eu gostaria de obter é:

---item 3---  
---item 4---  
---EditText---
---Keyboard---  

Eu tentei o android: windowSoftInputMode = "adjustPan" e o resultado é que, efetivamente, os itens 3 e 4 são empurrados para cima e não são mais escondidos pelo teclado. O problema é que ele empurra o listview, mas o empurra para fora da tela, então o actionBar desaparece, e mesmo se tentar rolar para cima, eu nunca consigo ver o Item 1 e 2 com o teclado mostrado.

Espero ter me explicado, não é realmente fácil ..

obrigado

questionAnswers(3)

yourAnswerToTheQuestion