2012-12-13 8 views
8

Wir versuchen, eine mobile AIR-Anwendung zu planen, die sowohl für Android als auch für iOS bereitgestellt wird. Einer der Bildschirme, den unser Designteam zurückgebracht hat, ist ein Vollbild-Texteditor, der vom oberen Bildschirmrand bis zur Tastatur läuft. Das kann ich natürlich nicht, wenn ich die Höhe der Tastatur nicht programmatisch erfassen kann. Gibt es eine Möglichkeit, dies zu tun?Ermitteln der Höhe der Softkey-Leiste in Adobe AIR Mobile

Ich weiß, dass es in iOS möglich ist und es scheint unmöglich in Android zu sein. Ich habe kein Problem, einen ANE dafür zu erstellen, aber ich würde es lieber vermeiden, wenn die Daten bereits in AIR verfügbar sind. Alternativ könnte ich einfach davon ausgehen, dass die Tastatur halb so groß ist wie der Bildschirm und das würde zum größten Teil auf iOS funktionieren.

Kurz gesagt, ist die Höhe des Softkeyboard in AIR möglich?

+0

Gute Frage; Ich glaube nicht, dass diese Informationen in irgendeiner Weise offengelegt werden. – JeffryHouser

+0

Ja, das habe ich mir gedacht. Ich bin überrascht, Apple stellt es sogar nativ zur Verfügung. Sie schützen ihre Tastatur übermäßig. –

Antwort

11

Ich glaube, dass Sie mit der Stage-Klasse zugreifen können. Werfen Sie einen Blick auf this.stage.softKeyboardRect in Ihrer Sicht.

Hinweis: Ich habe dies nicht persönlich versucht, aber Sie müssen möglicherweise nach einem Softkeyboard-Ereignis darauf zugreifen. Fügen Sie Ihrer Texteingabe unter softKeyboardActivate einen Ereignis-Listener hinzu und rufen Sie dann an, um die Höhe und Position der Tastatur zu ermitteln.

+0

Perfekt. Ich hatte dieses Eigentum noch nie zuvor bemerkt. Danke vielmals. –

+3

Ich habe bestätigt, dass dies sowohl auf iOS als auch auf Android funktioniert, nachdem das Event 'SoftKeyboardEvent.ACTIVATE' ausgelöst wurde. Getestet auf iOS6 (iPad gen 1 und 3) sowie Android 4.2 (Galaxy Nexus) mit Standard und SwiftKey Tastaturen –

+0

Es funktionierte perfekt auf Samsung Galaxy S3 und Galaxy Tab, aber die Höhe und Top-Abmessungen sind alle falsch auf meinem HTC 1 (M8). Seltsam! –