LinearLayout中ImageView无法居中仅左对齐,应该如何解决?
解决方案
你可以任选以下两种方案之一修改布局:
- 方案1:给父LinearLayout添加
android:gravity属性,控制所有子元素的对齐规则
修改后的代码如下:
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="match_parent" android:src="@android:drawable/ic_menu_edit" /> </LinearLayout>
- 方案2:给ImageView单独添加
android:layout_gravity属性,仅控制当前控件在父布局中的对齐规则
修改后的代码如下:
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center_horizontal" android:src="@android:drawable/ic_menu_edit" /> </LinearLayout>
原理解释
水平方向的LinearLayout默认对齐规则为左对齐,所以你原来的代码中ImageView会靠左显示。android:gravity是父布局用来指定内部所有子元素的对齐方向,android:layout_gravity是子元素用来指定自己在父布局中的对齐方向,两种属性选一种配置即可实现居中效果。
内容的提问来源于stack exchange,提问作者Efiamotu Owolewa
相关产品推荐
相关产品推荐

