Die Soft-Tastatur deckt einen EditText in einem PopupWindow ab

Ich habe ein einfaches Testprojekt zusammengestellt, das ein PopupWindow mit einem EditText (unter Android 2.2) anzeigt. Wenn ich auf den EditText tippe, wird die Soft-Tastatur wie erwartet angezeigt. Die Softtastatur deckt jedoch den EditText ab, und ich kann den Bildschirm nicht zum Schwenken bringen, um den EditText so im Blick zu behalten, wie ich es mir vorgestellt hätte. Mein Code:

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>

... und meine AndroidManifest.xml enthält die Zeileandroid:windowSoftInputMode="stateUnspecified|adjustPan" im Tag für die einzige Aktivität in der App.

Irgendwelche Ideen? Keiner der anderen SO-Beiträge zu diesem Thema hat es für mich getan. Was fehle ich, damit der Blick nicht so schwenkt, wie ich es erwarten würde?

BEARBEITEN: Ich habe versucht, eine Zeile in TestAdjustPanActivity wie angegeben hinzuzufügen, wodurch der Bildschirm auf einem Android 3.2-Gerät, das ich habe, perfekt geschwenkt wurde. Auf meinem Android 2.2-Gerät wird das Fenster jedoch immer noch nicht verschoben, was das Ganze noch verwirrender macht.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage