我正在尝试将softKeyboardType设置为电子邮件,但是当我使用skinClass =" spark.skins.mobile.TextAreaSkin"它没有改变它,但当我脱掉skinClass =" spark.skins.mobile.TextAreaSkin"它确实有效。问题是我需要skinClass =" spark.skins.mobile.TextAreaSkin"类允许我的应用程序滚动出来,文本不会留在文本输入框的边界。有没有人看到这个问题或另一个修复滚动问题?
代码示例
<s:TextInput softKeyboardType="email" id="id1" width="100%" skinClass="spark.skins.mobile.TextInputSkin" />
<s:TextArea softKeyboardType="email" id="id2" height="400" width="100%" skinClass="spark.skins.mobile.TextAreaSkin" />
感谢您的帮助,
贾斯汀
答案 0 :(得分:2)
我已经在flex 4.6 sdk中检查了mobiletheme default.css adobe正在为TextInput和TextArea组件使用不同的外观
TextArea
{
...
skinClass: ClassReference("spark.skins.mobile.StageTextAreaSkin");
}
TextInput
{
...
skinClass: ClassReference("spark.skins.mobile.StageTextInputSkin");
}
所以我认为你应该使用StageTextAreaSkin或StageTextInputSkin作为相应组件的skinClass
softKeyboardType在这种情况下可以工作,但文本位置问题仍然存在,我认为你需要为滚动更改/修复StageTextAreaSkin或StageTextInputSkin来源
答案 1 :(得分:1)
面对这个问题,我提出了一个在我的案例中有效的解决方法。
使用默认外观,设置softKeyboardType。
在为屏幕做布局时,创建一个包含屏幕最上部分的部分,您可以轻松地折叠或切换其includeInLayout属性,因此当您这样做时,它会使您的TextInput或TextArea出现在键盘,为此目的绕过滚动条。
然后,当您的字段获得焦点时,在focusIn处理程序中,您可以折叠或切换此部分。这样做有两个好处:首先,它会在键盘上抬起你的场地;第二,它会从你的场地中移除焦点(至少在我的情况下它确实如此,不确定100%,如果没有,则手动移动焦点) 。这很好,因为当你再次将焦点设置在场上时(yourfield.setFocus()),光标将出现在你想要它的位置,在你的场的范围内。
完成输入后,您可以从focusOut或softKeyboardDeactivate处理程序将顶部恢复到其原始状态。
希望这会有所帮助......
答案 2 :(得分:0)
似乎是flex 4.6 bug