大佬教程收集整理的这篇文章主要介绍了android – 每个InputType常量的语义是什么?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Google的文档对每个inputType的实际效果非常模糊.每种情况下实际允许哪些字符?如果有的话,这会因地区而异?即使没有记录的答案,并且它可能在版本之间发生变化,我仍然想知道预期的行为.
为了试验输入类型和IME选项,我编写了一个快速应用程序,允许您从GUI中的列表中选择它们,因此您不必编辑XML布局并重建应用程序来执行此操作.如果您想了解更多信息,或查看它们与给定IM应用程序的交互方式,请访问download IM prove free from Google Play.
TYPE_NULL
这个实际记录在案:
这使得它听起来像是你没有编辑文本的情况,但按下IM上的一个键会直接执行某些操作.但实际上它完全隐藏了Im.从应用程序的角度来看,您几乎从不想要这样:如果您只想让硬件键盘输入文本,请设置它.
从IM的角度来看,你会将这种类型传递给onStarTinput很多,通常当Android即将隐藏IM时,因为不同的活动即将到来.您希望快速响应此输入类型.它可能有两个原因可以解决这个问题,但参与设计的人必须确认原因: –
>可能是让IM知道编辑在该窗口中完全完成(与onFinishInput不同,这仅仅意味着IM被隐藏),因此它可以释放用于字典等的内存,直到编辑重新开始.
>它可能是允许硬件键盘使用箭头键进行滚动,菜单加速键等等的一部分,即使没有发生文本输入也是如此.
类
数字类型
TYPE_CLASS_numbER为您提供数字0-9.此外,添加TYPE_numbER_FLAG_SIGNED可让您拥有或 –,但仅作为第一个字符.您可以添加TYPE_numbER_FLAG_decimal.在任何位置,但只有一次.您可以同时使用signed和decimal.据我所知,这不是本地化的,因此即使对于语言环境,允许的字符也是相同的.是千位分隔符,是小数点,还是具有不同数字字符的区域设置.
TYPE_CLASS_PHONE允许您使用数字0-9,以及#* – (),/ N中的任何一个.和空间.您可以按任意顺序和任意次数拥有这些字符:没有格式化检查.
TYPE_CLASS_datetiR_4_11845@E | TYPE_datetiR_4_11845@E_VARIATION_DATE允许您使用数字0-9以及任何/ – ..再次,没有额外的格式检查,因此您可以按任何顺序使用它们.
TYPE_CLASS_datetiR_4_11845@E | TYPE_datetiR_4_11845@E_VARIATION_TIME允许您输入数字0-9以及:和任何放大器(用于写“am”或“pm”,但您可以按任何顺序和位置使用它们).有点不正常,你不能有空间或. “下午3点”或“下午2点”甚至是“2.30”.同样,它似乎没有本地化.
TYPE_CLASS_datetiR_4_11845@E | TYPE_datetiR_4_11845@E_VARIATION_NORMAL可以获得0-9以及:/ –,空格和放大器.这显然不包括.即使它在约会中被允许.
基于上述观察,我不能说我建议使用上述任何一类.他们似乎都有重大缺席并阻止本地化.以上是唯一具有字符限制的类.
TYPE_CLASS_numbER | TYPE_numbER_VARIATION_password按照您的预期执行:它使用TransformationMethod来隐藏键入的字符.
文字类型
在TYPE_CLASS_TEXT中,设置TYPE_TEXT_VARIATION_EMAIL_ADDRESS或TYPE_TEXT_VARIATION_EMAIL_SUBjeCT按下回车键将焦点移动到下一个字段,而不是插入换行符.
TYPE_TEXT_VARIATION_FILTER将阻止输入方法进入全屏(提取)模式.
TYPE_TEXT_VARIATION_password具有明显的效果:它使用TransformationMethod来模糊键入的字符. TYPE_TEXT_VARIATION_VISIBLE_password仍然使用TransformationMethod来防止文本被复制
如果未设置TYPE_TEXT_FLAG_NO_SUGGESTIONS,则以下所有文本变体都允许拼写检查.也就是说,使用非TYPE_CLASS_TEXT的类或不在此列表中的变体具有与设置TYPE_TEXT_FLAG_NO_SUGGESTIONS(稍后描述)相同的效果.
> TYPE_TEXT_VARIATION_NORMAL
> TYPE_TEXT_VARIATION_EMAIL_SUBjeCT
> TYPE_TEXT_VARIATION_LONG_messaGE
> TYPE_TEXT_VARIATION_SHORT_messaGE
> TYPE_TEXT_VARIATION_WEB_EDIT_TEXT
旗
InputType.TYPE_TEXT_FLAG_MULTI_LINE的存在与否具有非明显的副作用.如果类型类不是TYPE_CLASS_TEXT,则总是好像没有设置标志,并且TextView进入单行模式.将行或maxLines设置为1只会影响文本的显示方式:它不会启动单行模式.
在单线模式下: –
> ellipsize选项默认为结束
>按Enter键执行“编辑器操作”或将焦点移动到下一个字段(就像上面的电子邮件地址或主题一样);否则,它会插入换行符
>仅当未设置TYPE_TEXT_FLAG_IME_MULTI_LINE时,按Tab键才会将焦点移动到下一个字段;否则它会插入制表符
> imeOptions可以包含一个“编辑器动作”来替换软键盘上的回车键;在多行模式下,TextView会将IME_FLAG_NO_ENTER_ACTION添加到imeOptions
> maxLines自动设置为1
>向字段添加换行符(例如使用setText)无效,并且回车符替换为零宽度空格(U FEFF)
TYPE_TEXT_FLAG_CAP_ *使用TextUtils.getCapsMode来决定是否将每个字符大写.这些规则有点巴洛克式,并且不是区域敏感的. AFAICT,仅在默认键盘中启用相应设置时才会生效.
设置TYPE_TEXT_FLAG_AUTO_CORRECT时,空格,制表符,换行符,任何Unicode“结束标点符号”或任何,.!?“将触发前一个单词的自动更正(在此上下文中,这是Unicode字母和撇号的最长序列如果整个单词没有更正,则继续以较短的子序列重试.更正来自固定的系统资源com.android.internal.R.xml.autotext,并且与任何配置的拼写检查器分开.
TYPE_TEXT_FLAG_NO_SUGGESTIONS(或前面列出的文本变体)会停止拼写检查的文本.这可以防止显示拼写检查建议列表,并且还可以停止突出显示拼写错误的单词.如果选择,输入方法仍然可以提供完成.
其他奇怪的
长按TextView通常会选择被点击的单词,但如果输入类型是以下之一,则会选择所有文本: –
> TYPE_CLASS_numbER> TYPE_CLASS_PHONE> TYPE_CLASS_datetiR_4_11845@E(任何变体)> TYPE_TEXT_VARIATION_URI> TYPE_TEXT_VARIATION_EMAIL_ADDRESS> TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS> TYPE_TEXT_VARIATION_FILTER
以上是大佬教程为你收集整理的android – 每个InputType常量的语义是什么?全部内容,希望文章能够帮你解决android – 每个InputType常量的语义是什么?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。