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的控件即可。

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