Mover o layout para cima quando o teclado virtual for exibido

Estou tentando ajustar o layout quando o teclado virtual aparece depois que um texto de edição fica em foco. No momento, se houver muitos textos para edição e o teclado aparecer, o último texto ficará oculto e não será possível rolar para cima.

É assim que meu layout é construído:

Modelo:

<LinearLayout>
    <LinearLayout>
        // header 1
    </LinearLayout>
    <LinearLayout>
        // header 1
    </LinearLayout>
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:orientation="vertical">
        // where I inflate view_1
    </LinearLayout>
    <LinearLayout>
        // footer
    </LinearLayout>
</LinearLayout>

Visualização (visualização_1):

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:focusable="true"
        android:focusableInTouchMode="true">
        <LinearLayout>
            // ...
        </LinearLayout>
        <LinearLayout>
            // ...
        </LinearLayout>
        <LinearLayout>
            <TextView/>
            <EditText/>
            <TextView/>
            <EditText/>
            <TextView/>
            <EditText/>
            <TextView/>
            <EditText/>
        </LinearLayout>
    </LinearLayout>
</ScrollView>

Eu já tentei todos os tipos de combinações deandroid:windowSoftInputMode (no manifest.xml e programaticamente). Eu tentei definirandroid:isScrollContainer="false" na exibição de rolagem, mas nada.

Eu também tentei issoresponda, colocando um GlobalLayoutListener na minha exibição de rolagem, mas o onGlobalLayout não é chamado quando o teclado aparece. E aisKeyboardShown é sempre falso.

questionAnswers(7)

yourAnswerToTheQuestion