Ich habe ein einfaches Testprojekt zusammengewürfelt, das ein PopupWindow mit einem EditText (auf Android 2.2) anzeigt. Wenn ich auf den EditText tippe, wird wie erwartet die Soft-Tastatur angezeigt. Die Soft-Tastatur 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 hätte finden sollen. Mein Code:Soft-Tastatur deckt einen EditText in einem PopupWindow
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 Zeile android:windowSoftInputMode="stateUnspecified|adjustPan"
im Tag für die einzige Aktivität in der App.
Irgendwelche Ideen? Keiner der anderen Beiträge in Bezug auf SO zu diesem Thema hat es für mich getan. Was vermisse ich, dass die Aussicht vom Schwenken so bleibt, wie ich es erwarten würde?
EDIT: Ich habe versucht, eine Zeile in TestAdjustPanActivity wie angegeben hinzufügen, die den Bildschirm auf einem Android 3.2-Gerät, das ich habe, perfekt schwenken. Allerdings schwenkt es immer noch nicht auf meinem Android 2.2-Gerät, was das Ganze noch verwirrender macht.
Meh, leider kein Glück. Trotzdem danke! – Lewis