源码如下
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fresco="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/avatar"
android:layout_width="@dimen/n1_avatar"
android:layout_height="@dimen/n1_avatar"
android:layout_centerHorizontal="true"
fresco:actualImageScaleType="focusCrop"
fresco:failureImage="@drawable/sample_user"
fresco:placeholderImage="@drawable/sample_user"
fresco:retryImage="@drawable/sample_user"
fresco:roundAsCircle="true" />
<ImageView
android:id="@+id/avatar_source"
android:layout_width="15.0dip"
android:layout_height="15.0dip"
android:layout_alignBottom="@id/avatar"
android:layout_alignRight="@id/avatar" />
这里我对第一个View设置了layout_centerHorizontal属性,也就是水平居中,第二个View设置在第一个View的右下方。但是运行后发现,第二个View也居中显示。
然后我把第一个View的android:layout_centerHorizontal属性去掉,第二个View居然就正常显示了,还是第一次遇到。
可以推测,是由于第二个View依赖第一个View,第一个View居中显示,第二个View也继承了居中的属性,只有后续深入源码来验证这个猜想了。