2012-01-29 32 views
5

Tôi có một ứng dụng AIR thoại di động với một bố cục đơn giản:Flex Prevent mềm bàn phím từ bế mạc

<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> 

Ứng dụng này được thiết lập để thay đổi kích thước khi bàn phím mềm mở bằng cách thiết lập resizeForSoftKeyboard = "true" trong ứng dụng chính. TextArea sử dụng skin Flex 4.6 mặc định.
Vấn đề của tôi là, nếu người dùng mở bàn phím bằng cách nhập văn bản vào texArea của tôi, anh ấy sẽ không thể nhấp vào các nút bên dưới TextArea, vì ngay sau khi anh ấy cố gắng nhấp vào nút, bàn phím mềm giảm (vì tiêu điểm nó ra khỏi TextArea?) và ngay lập tức mở ra một lần nữa (vì vị trí mouseDown bây giờ ở trên TextArea?).

Làm cách nào để ngăn bàn phím mềm đóng, vì vậy người dùng có thể nhấp vào các nút giữa TextArea và bàn phím?

Cảm ơn

Trả lời

0

Có thể thêm sự kiện để hiển thị bàn phím khi nhấn nút, tức là trong trình xử lý sự kiện nhấp của nút đó.

Ngoài ra (và tôi havnt cố gắng này bản thân mình), nhưng trong trường hợp Tắt cho bàn phím cho quan điểm cho rằng, thêm event.preventDefault()

Brian

+0

Tôi đã thử cả hai. Vấn đề là, nút không được nhấp vào. Tôi nghĩ rằng đây là thứ tự của các sự kiện: 1. textArea mất tiêu điểm 2. bàn phím đi xuống, bàn phímKích hoạt sự kiện được gửi đi. 3. mouseDown đăng ký trên (mở rộng) textArea, do đó, bàn phím trở lại. – sydd

1

này là rất lạ. Tôi đã thử chạy chương trình của bạn bản thân mình, và tôi không gặp rắc rối gì cả:

<?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> 

Bàn phím mở khi tôi chạm vào vùng văn bản, đóng khi tôi nhấp vào nút (không mở lại) và các lần nhấp hiển thị trong giao diện điều khiển khi gỡ lỗi.

Bạn đã không đăng toàn bộ ứng dụng, bạn có điều gì trong chương trình hoàn chỉnh mà tôi không? Trong trường hợp đó, tôi sẽ thấy nếu có bất kỳ điều gì có thể can thiệp vào giao diện người dùng.

Các vấn đề liên quan