2011-01-06 5 views
1

Ich habe ein Such-Widget basierend auf dem Code, Searchable Dictionary v2 erstellt. Alles funktioniert gut, aber es gibt ein Problem.Wie man android Suchdialog beim Drehen des Bildschirms hält?

Wenn ich den Bildschirm von Hochformat auf Querformat oder umgekehrt rotiere, wenn das Suchdialogfeld aktiviert ist, werden das Textbearbeitungsfeld und der Tastaturbildschirm ausgeblendet und erneut ausgeführt.

Gibt es eine Möglichkeit, dass ich die Bearbeitungsbox in einen geeigneten Modus (Querformat oder Hochformat) schalten kann, ohne das Dialogfeld zu verlassen und erneut auszuführen?

Sie können das Verhalten mit dem durchsuchbaren Wörterbuch überprüfen. Ich möchte etwas wie das Google-Such-Widget. Es wechselt nur den Bearbeitungsmodus, während es den Bildschirm hält.

Antwort

5

Sobald die Bildschirmausrichtung geändert wurde, erstellt Android eine neue Aktivität/Ansicht, sodass Sie möglicherweise die Bildschirmausrichtung selbst übernehmen müssen. Ich habe diese Lösung erfolgreich in einer App verwendet, ich nehme an, sie gilt auch für Widgets.

Sehen Sie diese Seite auf, wie das zu tun:
http://www.androidpeople.com/android-how-to-handle-screen-orientation-change-issue/

Einige andere hilfreiche Hinweise (im Grunde die gleichen Lösungen) sind hier:
How do I handle screen orientation changes with an activity started within a tab's activity
How to handle screen orientation change when progress dialog and background thread active?

Einige Informationen über onPause() und onSaveInstanceState() (was möglicherweise nicht zutrifft, da Sie ein Widget verwenden, aber nur für den Fall :)) ist hier:
How do I disable orientation change on Android?

+0

url funktioniert nicht mehr. Kannst du die Lösung beschreiben? Ich versuche den Suchvorgang neu zu erstellen, die Suchaktion in der Symbolleiste zu erweitern und den Suchtext für den Benutzer einzugeben. Dies funktioniert, bis ich die Suche abgeschlossen habe. An diesem Punkt verschwinden die Symbole in der Symbolleiste. Das Navigationssymbol und das Überlaufsymbol (drei Punkte) bleiben erhalten, aber mein Suchsymbol (und das Upload-Symbol) dort waren verschwunden. Sie werden auf einer anderen Bildschirmdrehung wiederhergestellt –

2

Was ich tat, war, um die Orientierung zu sperren, während der Dialog angezeigt wird, dann ist es entsperren, wenn Sie fertig:

int currentOrientation = getResources().getConfiguration().orientation; 
     if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) { 
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); //locks landscape 
     } 
     else { 
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); //locks port 
     } 
    // do work 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); 
Verwandte Themen