Android 獲取控件寬高

當控件未加載的時候獲取屏幕寬高獲取的都是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的控件即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章