前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android 动态设置控件宽度,比例等

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

作者头像
再见孙悟空_
发布2023-02-10 20:08:15
1.9K0
发布2023-02-10 20:08:15
举报

左边是手机上面的效果,右边是华为pad上面的效果。

中间 合同价 竣工结算价 这个分类要求显示4个,所以 这个里面item的宽度是动态计算的。

不然无法满足要求。

计算的思路

是用 (屏幕宽度-2*中间linearlayout的 margin-2*中间linearlayout的padding)/4

就是每个item的宽度。

这里面还需要注意一点就是动态设置宽度 不要给item xml里面的 最外面的Linearlayout或者RelativeLayout设置width

这样可能会出错,直接给 布局里面的 textView 或者imageView设置就可以了

代码语言:javascript
复制
 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 ;
    }
代码语言:javascript
复制
	/**
	 * 获取屏幕宽度;
	 */
	public static int getScreenWidth(Context context) {
		return context.getApplicationContext().getResources()
				.getDisplayMetrics().widthPixels;
	}

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

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

代码语言:javascript
复制
  LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(mItemWidth, LinearLayout.LayoutParams.WRAP_CONTENT);
  vh.titleTv.setLayoutParams(params);
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档