[英]Set dynamic line break in an Android TextView
我有一个TextView,其中显示了我从JsonObject收到的电子邮件。
如果此电子邮件太长,它将在单个字符后面使用第二行。 例如:
example.email@email.co
米
为了避免这种情况,我想在有更多行的情况下换行
example.email@email
.com
假设您的最大长度是5。
int maxLength = 5;
String jsonReturnedData = "Hello World"
将其直接插入TextView之前,
jsonReturnedData = jsonReturnedData.substring(0, maxLength) + "\n" + jsonReturnedData.substring(maxLength, jsonReturnedData.length());
现在,您将如何修复maxLength? 您必须使用试错法检查不同的屏幕尺寸。 下面的代码将为您提供设备的屏幕尺寸,所有您需要做的就是从AVD或物理设备中进行检查,以实际修复要在String中折叠/放置新行的位置...
int screenSize = getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK;
String toastMsg;
switch(screenSize) {
case Configuration.SCREENLAYOUT_SIZE_LARGE:
toastMsg = "Large screen";
break;
case Configuration.SCREENLAYOUT_SIZE_NORMAL:
toastMsg = "Normal screen";
break;
case Configuration.SCREENLAYOUT_SIZE_SMALL:
toastMsg = "Small screen";
break;
default:
toastMsg = "Screen size is neither large, normal or small";
}
Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();
希望这可以帮助。 干杯!
[PS:有趣的是,我昨天写了一个switch-case块,但是它不能正常工作(总是进入默认块),我想知道我的代码出了什么问题,当我写你的问题时,我终于明白了我错过了什么。 :p]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.