5 Stimmen

Flex Verhindern, dass sich die weiche Tastatur schließt

Ich habe eine mobile AIR-Anwendung mit einem einfachen Layout:

<s:layout><s:VerticalLayout /></s:layout>

<s:TextArea width="100%" height="100%" />

<HGroup width="100%" >
     <s:Button label="button" />
     <s:Button label="button" />
     <s:Button label="button" />
</HGroup>

Die Anwendung wird so eingestellt, dass die Größe angepasst wird, wenn die Soft-Tastatur geöffnet wird, indem resizeForSoftKeyboard="true" in der Hauptanwendung festgelegt wird. Der textArea-Bereich verwendet den Standard-Skin von Flex 4.6.
Mein Problem ist, dass wenn der Benutzer die Tastatur öffnet, indem er Text in meine TextArea eingibt, er nicht in der Lage ist, auf die Schaltflächen unter der TextArea zu klicken, denn sobald er versucht, auf eine Schaltfläche zu klicken, senkt sich die Soft-Tastatur (weil der Fokus aus der TextArea?) und öffnet sich sofort wieder (weil die mouseDown-Position jetzt über der TextArea?).

Wie kann ich verhindern, dass die Softtastatur geschlossen wird, so dass der Benutzer in der Lage ist, die Schaltflächen zwischen dem TextArea und der Tastatur zu klicken?

Gracias

1voto

DennisK Punkte 426

Das ist sehr merkwürdig. Ich habe versucht, Ihr Programm selbst auszuführen, und ich habe überhaupt keine Probleme:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="320" resizeForSoftKeyboard="true">
    <s:layout><s:VerticalLayout /></s:layout>

    <s:TextArea width="100%" height="100%" />

    <s:HGroup width="100%" >
        <s:Button label="button" click="trace('clicked')"/>
        <s:Button label="button" click="trace('clicked')" />
        <s:Button label="button" click="trace('clicked')" />
    </s:HGroup>
</s:Application>

Die Tastatur öffnet sich, wenn ich den Textbereich berühre, schließt sich, wenn ich auf eine Schaltfläche klicke (ohne sich erneut zu öffnen), und die Klicks werden beim Debuggen in der Konsole angezeigt.

Sie haben nicht die gesamte App gepostet. Haben Sie etwas im vollständigen Programm, was ich nicht habe? In diesem Fall würde ich sehen, ob etwas davon die Benutzeroberfläche beeinträchtigen könnte.

0voto

Drenai Punkte 8940

Fügen Sie vielleicht ein Ereignis hinzu, um die Tastatur aufzurufen, wenn die Schaltfläche angeklickt wird, d. h. im Click-Event-Handler der Schaltfläche.

Auch (und ich havnt versucht dies selbst), aber in der deaktivieren Veranstaltung für die Tastatur für diese Ansicht, fügen Sie event.preventDefault()

Brian

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X