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