android 动态设置控件宽度,比例等

举报
再见孙悟空_ 发表于 2022/01/14 22:40:44 2022/01/14
【摘要】 左边是手机上面的效果,右边是华为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设置就可以了


  
  1. private void getScreenInfo() {
  2. ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) mDocCateFl.getLayoutParams();
  3. int margin = 0;
  4. int padding = 0;
  5. margin = lp.leftMargin;
  6. padding = mDocCateFl.getPaddingLeft();
  7. mItemWidth = (PhoneUtil.getScreenWidth(getContext())-(2*margin) - (2*padding)) / 4 ;
  8. }

  
  1. /**
  2. * 获取屏幕宽度;
  3. */
  4. public static int getScreenWidth(Context context) {
  5. return context.getApplicationContext().getResources()
  6. .getDisplayMetrics().widthPixels;
  7. }

mDocCateFl是中间的layout  , mItemWidth是计算出来的宽度,然后将宽度传到adapter里面。

给对应的 textView设置上就可以了


  
  1. LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(mItemWidth, LinearLayout.LayoutParams.WRAP_CONTENT);
  2. vh.titleTv.setLayoutParams(params);

希望可以帮助到大家,如果大家还有其他问题,欢迎加入我的qq群讨论交流:

开发一群:454430053开发二群:537532956
 

文章来源: wukong.blog.csdn.net,作者:再见孙悟空_,版权归原作者所有,如需转载,请联系作者。

原文链接:wukong.blog.csdn.net/article/details/79657290

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。