Button 和 TextView,一般设置其属性
android:layout_width="wrap_content"// 宽度根据文字长度而变化,在中文下普遍比较短,但是在其他语言下可能长一倍以上
android:singleLine="true"// 单行
但是,上面的设置存在一个问题,如果文字很短,则Button 的宽度也很短,视觉上不美观,因此,设计师会给一个宽度,例如 64dp,
往往工程师会这样设置
android:layout_width="64dp"// 宽度根据文字长度而变化
android:singleLine="true"// 单行
但是,这又带来一个问题,中文显示时,64dp能完全显示出文字,换成其他语言或大字体,文字就被截断了,显示不全
为解决这个问题,可以这样设置
android:layout_width="wrap_content"// 宽度根据文字长度而变化
android:singleLine="true"// 单行
android:minWidth="64dp"// 最小宽度;如果文字太短,就按照设计师给的宽度来显示
android:maxWidth="120dp"// 最大宽度;宽度也不能无限拉大,否则可能挤得其他控件放不下了,这个值需要工程师自己估算,你的宽度如果超过这个值,就会造成界面混乱
这样设置的好处是,文字宽度很小,或文字宽度很长,都能适配,
但是一旦文字宽度超过 maxWidth,如果收到这样的bug,工程师找设计师修改布局(例如单行改多行),或找产品经理和翻译人员修改文字,或改成跑马灯效果,这已经不是技术能解决的问题了
网友评论