android中哪种布局最好为什么,Android一种常见的布局困扰

阅读: 评论:0

android中哪种布局最好为什么,Android一种常见的布局困扰

android中哪种布局最好为什么,Android一种常见的布局困扰

序言:步入社会之后有很多东西都变得身不由己了,比如说加班,放假之前的一个礼拜都处于加班的状态,加班归加班,但是问题还是得要记录一下的,话不多说,直接上图:

相信大多数人都遇到过这样的需求,一个Item中的标题后面跟了一个标签,最多只能显示一行,而标签是首先需要展示的,也就是说标签必须展示完全,然后标题尽可能多的展示文字,一行不够的话就用...来代替。好了,让我们来分析一下:

**错解:**这里特别说明一下,很多人就觉得直接让标签居右边显示然后标题在标签的左边占有剩下的布局就好了,当标题和标签的文字很短时,这样就不能让文字相互挨着了,所以这样做显然是行不通的;还有的人可能会觉得,用线性布局,标签自适应,标题设置权重就好了,这样做有可能的后果同上,当标题文字很短时,两边文字也不能相互挨着了,最后相信大部分人都会选择让UI去屎吧,设计的啥X玩意儿,但是人设计师会说IOS都实现了,你们Android应该也能实现的啊!WTF!!!骂过之后还是得乖乖的把它给实现,这就是程序猿的命啊!

**正解:**抱怨完之后,咱们来想想有没有啥解决办法,首先我想到的是动态的给标题设置空间,先让标签布局好,然后计算掉标签所花费的空间,还有其他一些边距神马的,再计算屏幕的宽度,然后减去标签以及边距所占的空间,剩下的就是标题的空间了。那我们又是如何计算文字宽度的呢?

获取文字宽度方法:

TextPaint textPaintTitle&#Paint();

//title是textview所展示的文字

int textTitleWidth = (int) asureText(title);

复制代码

这样就可以获取textview的宽度了:

private void setText() {

tvTitle.setText(title);

tvLabel.setText(label);

textPaintTitle = Paint();

textPaintLabel = Paint();

int screenWidth = ScreenWidth(this);

int textTitleWidth = (int) asureText(title);

int textLabelWidth = (int) asureText(label);

//这60dp是textview的一些边距神马的,具体可以去布局文件中计算

int totalLeaveWidth = screenWidth - textLabelWidth - ScreenUtil.dp2px(this, 60.0f);

if (textTitleWidth > totalLeaveWidth) {

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) LayoutParams();

params.width = totalLeaveWidth;

}

}

复制代码

这样就可以解决上述的问题了:

本文发布于:2024-02-03 07:42:14,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170691733449608.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:布局   哪种   困扰   常见   android
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23