Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?这里我们不说那些复杂的属性,光说我们通常用的比较多的,android:maxlength官网API对其的解释为:第一句,也就是说,他是个inputfilter(输入过滤器)他的作用是通过specifiednumber(你指定的数字)来限制textlength(文本长度),这里特指的是文本长度,而无论我们输入什么内容,英文,符号,数字,汉字………………这些都属于文本范围,所以ma

大家好,又见面了,我是你们的朋友全栈君。

这里我们不说那些复杂的属性,光说我们通常用的比较多的,android:maxlength

官网API对其的解释为:

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

第一句,也就是说,他是个inputfilter(输入过滤器)他的作用是通过specified  , number(你指定的数字)来限制text   ,length(文本长度),这里特指的是文本长度,而无论我们输入什么内容,英文,符号,数字,汉字………………这些都属于文本范围,所以maxlength的作用就是直接限制显示的长度,

比如:

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

界面效果就是:

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

    7个字母+3个汉字。

今天做到这里的时候发现不能单纯利用这个属性做限制,就看了别的,发现还有个maxEms的属性,官网对其的解释为:

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

第一句:翻译过来是使得textview的宽度不少于很多ems的宽度

What???????此时超级不理解ems是啥?反正绝对不能是邮政快递吧,很迷茫在网上查了下各种开发者的解释,如下:

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

这位说是限制字符数量,那么我的理解就是严格按照中文两个字符长度,字母占一个这样的规则,于是写了个例子进行测试,

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

界面结果是:

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

   的确是自动换行了,但是第一行显示了7个字母加2个汉字,按照字节数来说的话应该是7+4=11才对啊,完全不是五个,但是往下看,第二行,是四个汉字加一个中文标点,10个字符长度,5个字符,莫非是这个意思?

然后我进行了下面几种测试:

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

  第一行是10个a,我就想难道在这里,中文算1个字符长度,字母算半个?

继续测试

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

第一行显示的是25个字符(包含三个英文标点),阿西吧,刚刚建立的世界观就毁了,看来也不是这种计算方式。

继续测++:

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

    到这里的时候我就欢乐了,应该就是指中文汉字数目吧,继续验证

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

   我了个去…………第一行咋又出现了11个字呢………………

于是我从1开始验证到了18,发现如下不成规律的规律:

设你输入的参数为n, 屏幕显示的数量为m。

值为1-5时,m = n..

6-11时,m = n+1。

12-18时,m = n+2。

再大我就没测试了,因为屏幕放不下了……………………

基本是符合规律的,对于结果+1和+2,我的猜想是,汉字间是有间隙的,汉字一多,加上间隙,宽度就会增大。也只是猜想,再反过来看看API。

Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

虽然还是不明白ems是什么,但是这里有个很重要的词,wide,宽度范围,而没有强调长度,那么我想应该就是字符在屏幕中所占的宽度了,既然这样,就和屏幕宽度和字体大小有直接的关系。

       本文到此基本能结束了,相信大家也有点了解了,虽然我也不能确定自己的猜想是正确的,但是拿来用应该没问题了,但是我对这个方法还有点吐槽:

1, GoogleAPI会以汉字为基准吗?地位一下提高的感觉啊……

2, 对于ems这种英文符号,没有意义,我们该怎么猜测。

3, 在android条件下,各种分辨率,各种屏幕标准,山寨手机还喜欢篡改默认字体的情况下用这种空间布局属性实在不太好适配呀……有较大的局限性

4, 综上所述,这个属性和方法不好用……over。

我不知道自己的验证和理解到底对不对,还是我根本就理解错了,希望对此有更靠谱理解的大神多多指点,在此谢过。

时隔一年,我又来更新博客了,很遗憾现在的我已经不是程序员了,不过关于上面这个问题,我终于得到了答案,解答链接如下:http://blog.csdn.net/JavaLive09/article/details/38661773。感谢给予帮助的大家,顺便CSDN,我还会在回来的,以不同的身份。再见。

时隔不知道多少年,我又来了,是因为看到这个文章居然有很多宝宝留言,你们想知道我去了哪里,我还在行业里,只是转做产品经理了,后面我还会继续分享职场中的一些经验和感想,我并没有走远,哈哈。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130273.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 移动互联网寒冬,Android 程序员的出路在哪里?

    移动互联网寒冬,Android 程序员的出路在哪里?安卓行业主要问题是初级Android太多了,会写XML和Activity的程序员太多了,初中级程序员面临很大的竞争,现状也就偏于高级开发者。越来越多的初中级Android程序员找不到满意的工作,甚至根本找不到工作!所以很多人觉得Android要凉了,甚至不惜转行,从头学其它技术。现在的Android招聘要求,已经不是多年之前的要求了。Android应用开发发展到今天,已经成为…

  • Android 程序员等级要求

    Android 程序员等级要求很多Android开发者已经度过了初级、中级,如何成为一个Android高手呢?Android123就各个级别的程序员应该掌握哪些内容作为下面分类。  一、初级  1.拥有娴熟的Java基础,理解设计模式,比如OOP语言的工厂模式要懂得。   2.掌握AndroidUI控件、AndroidJava层API相关使用。   迈向中级,最好再次更新下Ja

  • android设计个人简历页面_Android程序员个人简历模板下载(Word格式)[通俗易懂]

    android设计个人简历页面_Android程序员个人简历模板下载(Word格式)[通俗易懂]求职意向:Android程序员熟悉Android系统体系结构和软件开发技术,熟悉Eclipse集成开发环境以及Git代码管理工具;熟悉网络通信协议Http,Socket编程,XMPP协议以及JSON数据解析;熟悉Android程序开发,熟悉四大组件、常用UI组件、多线程等操作及原理;熟练掌握SQLite数据库、SharedPreferences以及文件存储等存储方式;衷情于互联网技术应用。XXXX…

  • 程序员真是太太太太太有趣了

    程序员真是太太太太太有趣了点击上方“程序员小明”,选择“星标”今晚可以不加班!网络上虽然已经有了很多关于程序员的话题,但大部分人对这个群体还是很陌生。我们在谈论程序员的时候,究竟该聊些什么呢?各位…

  • 关于 Android 程序员最近的状况

    关于 Android 程序员最近的状况-关于Android的近况大家都知道,今年移动开发不那么火热了,完全没有了前两年Android开发那种火热的势头,如此同时,AI热火朝天,很多言论都说Android不行了。其实不光是Android,iOS也有类似的言论。那么到底如何看待这一现象呢?我的答案是:Android还行,只是回归平淡了,没有了前些年的火热。-为什么Android还行?如何看待一个行业行不行?有两点:这个行业有没有死亡?…

  • Android程序员学习iOS

    Android程序员学习iOS开始学习iOS编程的知识,新手,对照Android开发学习1.AS里引入第三方库利用IDE可以搜索和添加,也可以直接在build.gradle里添加,利用的是gradle对在maven,jcenter库里的library可以进行检索、分析依赖以及自动下载。Xcode看来需要一个叫CocoaPods的工具2.iOS里到处都是委托,委托基于协议。比如AppDelegate,看起来

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号