android 动态设置控件宽度,比例等
2023-03-07 09:08:02 时间
左边是手机上面的效果,右边是华为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);
相关文章
- 人工智能的企业级应用落地实践 | 开发者社区精选文章合集(三十五)
- HaaS UI小程序解决方案教学|阿里云产品内容精选(三十四)
- 微信公众号开发经验总结
- 云原生技术促进产业数字化转型
- APP隐私政策
- 技术干货 | 应用性能提升 70%,探究 mPaaS 全链路压测的实现原理和实施路径
- app域名可以备案吗
- .app域名能备案吗
- 中国信通院何宝宏:2021云计算十大关键词
- 云计算虹吸效应明显 未来将呈现六大发展趋势
- PaaS是什么?什么定位?有什么优势?
- 不同场景教育点播视频课程加密方案介绍
- 真!无钥匙!数字钥匙在智能电动车领域的实践
- 钉钉企业应用网关了解一下
- API Gateway网关应用分析,使用Zuul搭建网关实战
- 企业级应用搭建平台是如何设计资产体系的?
- 一文看懂蓝牙在物联网中的应用场景
- 带你彻底搞懂 Redis 14大应用场景!
- 行业场景智能应用 解锁边缘计算时代新机遇 阿里云混合云一体机重磅升级
- 行业场景智能应用 解锁边缘计算时代新机遇