當控件未加載的時候獲取屏幕寬高獲取的都是0,所以需要換個方法
mViewHolder.mAdressView.post(new Runnable() {
@Override
public void run() {
setSnSeviceLayout();
}
});
public void setSnSeviceLayout(){
int width= (mViewHolder.mAdressView.getWidth()-DimenUtils.dip2px(getActivity(),55))/3; //不能使用一開始隱藏的控件獲取寬度,否則獲取到的寬度爲0
ViewGroup.LayoutParams params1= mViewHolder.mTvSuningService.getLayoutParams();
params1.width=width;
mViewHolder.mTvSuningService.setLayoutParams(params1);
ViewGroup.LayoutParams params2= mViewHolder.mTvHasStorage.getLayoutParams();
params2.width=width;
mViewHolder.mTvHasStorage.setLayoutParams(params2);
ViewGroup.LayoutParams params3= mViewHolder.mTvOverseas.getLayoutParams();
params3.width=width;
mViewHolder.mTvOverseas.setLayoutParams(params3);
ViewGroup.LayoutParams params4= mViewHolder.mTvPublicWelfare.getLayoutParams();
params4.width=width;
mViewHolder.mTvPublicWelfare.setLayoutParams(params4);
}
但是當使用了上述的方法的時候獲取的寬度仍然是0,後來才發現是因爲mViewHolder.mAdressView這個控件被設置了隱藏GONE,需要更換其他Visible的控件即可。