El teclado suave cubre un EditText en un PopupWindow

Junté un proyecto de prueba simple que muestra una ventana emergente que contiene un texto de edición (en Android 2.2). Cuando toco el texto de edición, se muestra el teclado virtual, como es de esperar. Sin embargo, el teclado virtual cubre el EditText, y no puedo hacer que la pantalla se desplace para mantener el EditText a la vista de la forma en que hubiera pensado que debería. Mi código:

TestAdjustPanActivity.java:

package com.example;

import android.app.Activity;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.PopupWindow;

public class TestAdjustPanActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final PopupWindow pw = new PopupWindow(this);
        pw.setContentView(getLayoutInflater().inflate(R.layout.popup, null, false));
        pw.setWidth(400);
        pw.setHeight(600);
        pw.setFocusable(true);

        pw.setOutsideTouchable(true);
        pw.setTouchable(true);
        pw.setBackgroundDrawable(new BitmapDrawable());

        // This is the line referred to in the edit:
        pw.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

        findViewById(R.id.main).post(new Runnable() {
            public void run() {
            pw.showAtLocation(findViewById(R.id.main), Gravity.NO_GRAVITY, 0, 0);
            }
        });
    }
}

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

</LinearLayout>

popup.xml:

<?xml version="1.0" encoding="UTF-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#666666"
        android:orientation="vertical" >

        <EditText
            android:id="@+id/current_password"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="40dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="300dp" />
    </LinearLayout>

</ScrollView>

... y mi AndroidManifest.xml contiene la líneaandroid:windowSoftInputMode="stateUnspecified|adjustPan"&nbsp;en la etiqueta para la única actividad en la aplicación.

¿Algunas ideas? Ninguna de las otras publicaciones sobre SO relacionadas con este problema lo han hecho por mí. ¿Qué es lo que me estoy perdiendo es evitar que la vista se desplace de la forma que yo esperaría?

EDITAR: Intenté agregar una línea en TestAdjustPanActivity como se indica, lo que causó que la pantalla se moviera perfectamente en un dispositivo Android 3.2 que tengo. Sin embargo, todavía no funciona en mi dispositivo Android 2.2, lo que hace que esto sea aún más confuso.