Miękka klawiatura pokrywa EditText w oknie PopupWindow

Wyrzuciłem prosty projekt testowy, który wyświetla okno PopupWindow zawierające EditText (na Androida 2.2). Gdy stuknę w EditText, wyświetlona zostanie klawiatura programowa, tak jak powinienem. Miękka klawiatura pokrywa jednak tekst EditText i nie mogę przesuwać ekranu, aby zachować tekst EditText w sposób, w jaki myślałem, że powinien. Mój kod:

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>

... a mój plik AndroidManifest.xml zawiera linięandroid:windowSoftInputMode="stateUnspecified|adjustPan" w tagu dla jedynej aktywności w aplikacji.

Jakieś pomysły? Żaden z pozostałych postów dotyczących SO związanych z tym zagadnieniem nie zrobił tego dla mnie. Czego mi brakuje, aby zachować panoramę tak, jak powinienem?

EDIT: Próbowałem dodać linię w TestAdjustPanActivity, jak wskazano, co spowodowało, że ekran idealnie się przesuwał na posiadanym urządzeniu z Androidem 3.2. Nadal jednak nie przesuwa się na moim urządzeniu z Androidem 2.2, co sprawia, że ​​jest to jeszcze bardziej mylące.

questionAnswers(5)

yourAnswerToTheQuestion