如何在RelativeLayout中实现布局居中:将CardView置于ImageView中心
要在RelativeLayout中实现CardView相对ImageView居中对齐,不需要使用layout_below属性,该属性仅能让控件排在目标控件下方,无法实现叠加居中效果,可通过以下方式实现:
方案1:CardView完整叠加在ImageView内部居中
给CardView添加4个对齐属性,绑定到目标ImageView的上下左右边界,即可让CardView默认在ImageView范围内居中,可自由调整CardView自身宽高、边距,不会影响居中效果:
<!-- 示例代码 --> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/target_image" android:layout_width="match_parent" android:layout_height="250dp" android:scaleType="centerCrop" android:src="@mipmap/your_image"/> <androidx.cardview.widget.CardView android:layout_width="200dp" android:layout_height="100dp" app:cardCornerRadius="10dp" app:cardElevation="5dp" <!-- 核心对齐属性 --> android:layout_alignLeft="@id/target_image" android:layout_alignRight="@id/target_image" android:layout_alignTop="@id/target_image" android:layout_alignBottom="@id/target_image"/> </RelativeLayout>
方案2:仅单方向居中
如果需要CardView在ImageView的指定位置对齐,比如底部水平居中,可调整属性如下:
<androidx.cardview.widget.CardView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@id/target_image" android:layout_centerHorizontal="true" android:layout_marginBottom="20dp"/>
内容的提问来源于stack exchange,提问作者Azka
相关产品推荐
相关产品推荐

