android 动态设置控件宽度,比例等
【摘要】
左边是手机上面的效果,右边是华为pad上面的效果。
中间 合同价 竣工结算价 这个分类要求显示4个,所以 这个里面item的宽度是动态计算的。
不然无法满足要求。
计算的思路
是用 (屏幕宽度-2*中间linearlayout的 margin-2*中间linearlayout的padding)/4
就是每个item的宽度。...
左边是手机上面的效果,右边是华为pad上面的效果。
中间 合同价 竣工结算价 这个分类要求显示4个,所以 这个里面item的宽度是动态计算的。
不然无法满足要求。
计算的思路
是用 (屏幕宽度-2*中间linearlayout的 margin-2*中间linearlayout的padding)/4
就是每个item的宽度。
这里面还需要注意一点就是动态设置宽度 不要给item xml里面的 最外面的Linearlayout或者RelativeLayout设置width
这样可能会出错,直接给 布局里面的 textView 或者imageView设置就可以了
-
private void getScreenInfo() {
-
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) mDocCateFl.getLayoutParams();
-
int margin = 0;
-
int padding = 0;
-
margin = lp.leftMargin;
-
padding = mDocCateFl.getPaddingLeft();
-
mItemWidth = (PhoneUtil.getScreenWidth(getContext())-(2*margin) - (2*padding)) / 4 ;
-
}
-
/**
-
* 获取屏幕宽度;
-
*/
-
public static int getScreenWidth(Context context) {
-
return context.getApplicationContext().getResources()
-
.getDisplayMetrics().widthPixels;
-
}
mDocCateFl是中间的layout , mItemWidth是计算出来的宽度,然后将宽度传到adapter里面。
给对应的 textView设置上就可以了
-
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(mItemWidth, LinearLayout.LayoutParams.WRAP_CONTENT);
-
vh.titleTv.setLayoutParams(params);
希望可以帮助到大家,如果大家还有其他问题,欢迎加入我的qq群讨论交流:
开发一群:454430053开发二群:537532956
文章来源: wukong.blog.csdn.net,作者:再见孙悟空_,版权归原作者所有,如需转载,请联系作者。
原文链接:wukong.blog.csdn.net/article/details/79657290
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)