2012-11-16 5 views
0

이것은 AIR 3.1의 Flex 4.6 용입니다. AIR 3.5에서도 동일한 문제가 발생했습니다. 등Flex 4.6 Mobile - TextArea 및 TextInput 스킨 문제

내가 제안 보았다 수정을 스크롤하는 동안 나는 현재 내가보기 사이를 화면에 머물고 textinputs 및 텍스트 영역에서 텍스트 문제를 가지고 일하고 있어요 응용 프로그램에서는

은에 대해 다른 skinclass를 사용하는 것이 었습니다 의 TextInput의와 텍스트 영역의 같은 :

skinClass="spark.skins.spark.TextAreaSkin" 

Adobe Flex Mobile - TextArea refuses to scroll on Android, StageWebView won't scroll at all는 TextAreaSkin를 사용하려면 다음 제안 중 하나의 예이다.

그러나이 기능과 동등한 TextInputSkins를 사용할 때 꽤 중요한 문제가 발생합니다.

우리가 사용하는 iPad 2 (iOS6)에서는 소프트 키 보드가 전혀 사용되지 않으며 Samsung Galaxy 태블릿 (Android 4)에서 키보드는 숫자와 특정 특수 문자 만 입력 할 수 있습니다 (대문자 특정 글자를 누르고 있지만 정상적으로 입력되지 않은 경우).

광산과 비슷한 문제에 대해 언급 한 적이 있습니다. http://forums.adobe.com/message/4078890하지만 해결책이 없습니다.

이상하게도 Android (Desire) 휴대 전화에서 모든 것이 잘 작동하거나 삼성 Galaxy Tablet에서 다른 키보드 앱 (Swiftkey)을 사용하면 문제가 없습니다.

다른 앱에서도 테스트 해본 결과 동일한 문제가 발생합니다. (그 응용 프로그램에 대한 스킨을 사용해야만하는 유일한 인스턴스는 편집 할 수없는 텍스트 영역이었습니다. 내가 그 응용 프로그램에서 언급 한 첫 번째 문제는 본적이 없습니다.)

편집 : 내가 가지고있는 대부분의 문제를 재현 한 몇 가지보기가있는 매우 기본적인 데모를 만들었습니다. 그것은 splitview 탐색기를 사용하는 모바일 응용 프로그램입니다. 기본 응용 프로그램 파일 :

<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 

<!-- Split View Navigator used for Tablet for panelled functionality --> 
<s:SplitViewNavigator width="100%" height="100%"> 
    <s:layout.landscape> 
     <s:HorizontalLayout /> 
    </s:layout.landscape> 
    <s:layout.portrait> 
     <s:VerticalLayout /> 
    </s:layout.portrait> 
    <s:ViewNavigator width.landscape="35%" height.landscape="100%" 
        width.portrait="100%" height.portrait="30%" 
        firstView="views.TestView" /> 
    <s:ViewNavigator width="100%" height="100%" height.portrait="100%" 
        firstView="views.TestFormHomeView" /> 
</s:SplitViewNavigator> 
</s:Application> 

홈 전망 :

<fx:Script> 
    <![CDATA[ 
     protected function buttonClick():void 
     { 
      navigator.pushView(TestView2); 
     } 

     protected function listClick():void 
     { 
      navigator.popView(); 
      navigator.pushView(TestFormHomeView); 
     } 
    ]]> 
</fx:Script> 

<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 
<s:Scroller width="100%" height="100%"> 
    <s:HGroup width="100%"> 
     <s:List width="50%" click="listClick()"> 
      <s:ArrayCollection> 
       <fx:String>Test1</fx:String> 
       <fx:String>Test2</fx:String> 
       <fx:String>Test3</fx:String> 
       <fx:String>Test4</fx:String> 
       <fx:String>Test5</fx:String> 
      </s:ArrayCollection> 
     </s:List> 
     <s:VGroup width="50%"> 
      <s:TextArea id="testing" skinClass="spark.skins.spark.TextAreaSkin" /> 
      <s:TextArea id="testing2" /> 
      <s:Button click="buttonClick()" label="Next Screen" /> 
     </s:VGroup> 
    </s:HGroup> 
</s:Scroller> 
</s:View> 

그리고 TestView :

<?xml version="1.0" encoding="utf-8"?> 
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" title="TestView"> 
<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 

<s:TextArea id="testing2" /> 
</s:View> 

TestView2 :

<?xml version="1.0" encoding="utf-8"?> 
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" title="TestView2"> 
<fx:Script> 
    <![CDATA[ 
     protected function goBack():void 
     { 
      navigator.popView();     
     } 
    ]]> 
</fx:Script> 
<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 
<s:layout> 
    <s:VerticalLayout /> 
</s:layout> 
<s:TextArea id="testing2" /> 
<s:Button label="Back" click="goBack()" /> 
</s:View> 
012

아이폰 OS (아이 패드) : 전혀 softKeyboard

HomeView의 주요 텍스트 영역 3,516,나를 위해 다음과 같은 문제가 적용되는 skinclass 있습니다.

안드로이드 (삼성 갤럭시 탭) : 키보드가 나타납니다하지만 숫자와 텍스트가 특정 특수 문자

내가 (다른 skinclass없이) 문제를 재현 할 수 없었습니다 화면에 있지만 안드로이드에 머물고 있습니다 'TestView'의 텍스트 상자에 무언가를 입력하고 Next Screen을 클릭하면 뷰가로드 된 후 (텍스트 상자를 클릭 할 때까지) TestView의 텍스트가 사라집니다. 텍스트 상자로 화면을 스크롤하는 시간이 길면 다른 스킨 클래스를 사용하지 않으면 많은 문제가 발생합니다.

+0

문제를 재현하기 위해 일부 코드를 공유하십시오. 문제의 정확한 장치를 지정할 수도 있습니다. 및 설치된 OS. 플렉스 버전 (태그로 가정)과 사용중인 AIR 버전. – JeffryHouser

+0

@ www.Flextras.com 태그와 제목에 flex 버전을 포함 시켰지만 이제는 게시물에 추가했습니다. 또한 장치에 대한 OS 버전을 추가했습니다. 하지만 별도의 플랫폼에서 중요한 문제가 발생한다는 사실은 운영체제 문제가 아니라는 것을 의미합니다. 나는 빠른 코드 샘플을 포함 시켰지만, 전체 어플리케이션 = - /을 제공하지 않으면 내가 제공 할 수있는 것이 많지 않다. – Rjs37

+0

문제를 재현하기 위해 "Runnable"코드를 말해야했습니다. 잘라내어 붙여 넣을 수있는 것과 컴파일하는 것. 문제를 시연하는 최소한의 실행 가능한 샘플. 나는 당신이 언급 한 어떤 문제도 경험하지 못했다. 여러 버전의 iOS 및 Android에서 TextInput을 사용했습니다. AIR 버전을 3.4 [최신 버전]으로 업데이트하여 문제가 해결되는지 확인해보십시오. – JeffryHouser

답변

2

그래, 내 문제가 무엇인지 알았어. 결국 아주 단순한 것으로 밝혀졌습니다.

잘못된 스킨을 사용하고있었습니다.

아직 완벽하게 작동하지는 않지만 사실은 실제로 작동하는 것이 구호 역할입니다.

+0

그러나 실제로 해결책은 아닙니다. mobile.TextInputSkin은 입력 된 첫 번째 문자를 생략하는 등 Flex 4.6 및 AIR 3.5와 관련된 많은 문제를 발생시킵니다. – AlBirdie

+2

@Al_Birdy 그게 유일한주의 사항이었고, 당신이 프롬프트를 사용할 때만 보이는 것 같습니다. 프롬프트가 없으면 그 피부로 전환 한 이후로 전혀 문제가 없었습니다. 그 전에 내가 가지고 있던 다른 옵션들은 전혀 쓸모가 없었습니다. – Rjs37

+1

나는 이것에 대해서도 생각하고있다. iOS에서 TextInput에 문자를 입력하면 (iOS에서) 첫 번째 문자가 선택되고 더 많은 문자를 입력하면 덮어 쓰게됩니다. 너희들이 찾은 것이 야? 해결책이 있습니까? –

0

Scroller에서 이러한 스킨을 사용할 수 있도록하는 StageTextAreaSkin 및 StageTextInputSkin에 대한 해결 방법을 만들었습니다. TextInputSkin을 사용하려는 유일한 이유가 스크롤을 지원하는 것 인 경우이 방법이 도움이됩니다. 그것은 GitHub를 볼 수 있습니다 :

https://github.com/lizardon/TouchScrollStageText

그것은 스크롤러 구성 요소를 조상하는 터치 이벤트 및 위치 변경을 수신하기 위해 StyleableStageText 클래스를 변경하는 방식으로 작동합니다.

Apache가 곧이 버그를 해결하고 해결 방법이 필요하지 않기를 바랍니다.

1

모바일에서 TextInput 및 TextArea를 스킨해야하는 경우 Actionscript를 사용하는 모바일 스킨이 기본 MXML 스킨과 비교하여 가벼운 스킨이므로 기본 spark.skins.mobile.MobileSkin (또는 MobileTextInputSkin)의 하위 클래스를 만들어야합니다. MXML을 사용하여 TextInput 및 TextArea를 스키닝하면 Samsung 휴대 전화 및 태블릿 (기본 Google Android 키보드를 사용하지 않음)과 같은 일부 기기에서 입력 포커스가있을 때 SoftKeyboard가 표시되지 않는 문제가 발생합니다.

또 다른 한 가지는 : 속성을 TextInput 및 TextArea에 사용해서는 안되며, 그렇지 않으면 텍스트를 서로 덮어 쓰는 오류가 발생합니다. 호프이 도움말, Rijs37