Android Studio 布局无法预览,显示为空白的一个原因
在使用Android Studio 的过程中,在改动自定义的控件后出现了布局预览不显示的情况,直接显示为空白.什么都没有.
起初在网上找了一些解决方法,大致都是由于编译版本,或者主题关联错误导致,但是尝试无果,并不是因为这个原因.
在尝试注释掉自定义控件后布局预览正常,于是排查自定义控件的情况,确定了是因为自定义控件中加入了一些在真实设备才能使用的一些方法.
具体如下:
@Override public void setLayoutParams(ViewGroup.LayoutParams params) { if (!isInEditMode()&¶ms instanceof MarginLayoutParams) { MarginLayoutParams marginLayoutParams = (MarginLayoutParams) params; marginLayoutParams.topMargin = (int) getResources().getDimension(R.dimen.status_height); Logger.D("状态栏高度: "+getStatusBarHeight()+" "+marginLayoutParams.topMargin); } super.setLayoutParams(params); }这里因为获取了状态栏高度导致不正常(代码是修复之后的.
解决办法也很简单,在调用这类方法的地方 使用isInEditMode() 这个方法进行判断.
这个方法是用来判断是否是处于编辑预览的状态 z