Closed wushaoge closed 5 years ago
看了下代码。不算是BUG吧。源码里面的相对布局是这样填充的,设置为Gravity.TOP或者BOTTOM,填充的引导页view的距离左边是以高亮view的left计算的,设置为Gravity.LEFT或者RIGHT,填充的引导页view的距离高度是以高亮view的top计算的。碰到的问题 引导页的位置相对右上方头像的位置为Gravity.BOTTOM,导致引导页宽度为高亮view的右侧大小,显示的宽度不对。
如果想要宽度和高度占满屏幕可以修改源码RelativeGuide中
private MarginInfo getMarginInfo(@LimitGravity int gravity, ViewGroup viewGroup, View view) {
MarginInfo marginInfo = new MarginInfo();
RectF rectF = highLight.getRectF(viewGroup);
switch (gravity) {
case Gravity.LEFT:
marginInfo.gravity = Gravity.RIGHT;
marginInfo.rightMargin = (int) (viewGroup.getWidth() - rectF.left + padding);
// marginInfo.topMargin = (int) rectF.top;
marginInfo.topMargin = 0;
break;
case Gravity.TOP:
marginInfo.gravity = Gravity.BOTTOM;
marginInfo.bottomMargin = (int) (viewGroup.getHeight() - rectF.top + padding);
// marginInfo.leftMargin = (int) rectF.left;
marginInfo.leftMargin = 0;
break;
case Gravity.RIGHT:
marginInfo.leftMargin = (int) (rectF.right + padding);
marginInfo.topMargin = (int) rectF.top;
// marginInfo.topMargin = 0;
break;
case Gravity.BOTTOM:
marginInfo.topMargin = (int) (rectF.bottom + padding);
// marginInfo.leftMargin = (int) rectF.left;
marginInfo.leftMargin = 0;
break;
}
return marginInfo;
}
建议加入相关控制,Gravity.PARENT_RIGHT、Gravity.PARENT_LEFT、Gravity.PARENT_TOP、Gravity.PARENT_BOTTOM等属性来进行控制
设置相对位置RelativeGuide方向为Gravity.TOP或者Gravity.BOTTOM,引导页的宽度是以高亮view的左边对齐,导致引导页宽度显示不正确