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设置就可以了


      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

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

全部回复

上滑加载中

设置昵称

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

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

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