Android(安卓)获取控件宽高
16lz
2021-12-04
当控件未加载的时候获取屏幕宽高获取的都是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的控件即可。
更多相关文章
- Android实现打电话功能
- AndroidTextView的跑马灯效果,解决复杂布局不能获取焦点的问题
- Android(安卓)控件属性
- Android屏幕尺寸、标题栏高度、状态栏高度、当前View尺寸
- Android练习——Spinner二级联动_城市选择
- 取消自动获取焦点(默认进来焦点到edittext),取消进入呼出软件盘
- Android(安卓)获取手机卡相关信息
- android开发之android:padding和android:margin的区别
- Android重要控件概览(上)