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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shaoyezhangliwei/article/details/79657290

左边是手机上面的效果,右边是华为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

猜你喜欢

转载自blog.csdn.net/shaoyezhangliwei/article/details/79657290
今日推荐