这是XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:orientation="vertical"
>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal" //CENTER 01
>
<!--center button-->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/img"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" //CENTER 02
/>
//...
</RelativeLayout>
</LinearLayout>
<include android:id="@+id/banner" layout="@layout/banner"
android:layout_weight="1"
android:layout_gravity="bottom"/>
</LinearLayout>
中央按钮居中,但不在屏幕的真实中心,而是在中心右侧约50px。如果我删除centerHorizontal
CENTER01,那么这不会发生。
有谁知道为什么会这样?
答案 0 :(得分:3)
请尝试//CENTER 02
:
android:layout_centerInParent="true"
答案 1 :(得分:1)
此问题可能是由于在xml文件中使用了相对布局和线性布局。
将所有线性布局更改为 相对布局 ,以便图像视图按预期居中。
我在单一XML中混合了线性布局和相对布局,并且面临着这种问题。一旦我将所有线性布局替换为相对布局,我的问题就解决了。
试试吧。谢谢.Venky
答案 2 :(得分:1)
在父级上设置android:gravity="center_horizontal"
时,会影响其子级的行为。因此,您的ImageView
会受到影响,创建您在其他属性放置在中心后看到的效果。
您可以通过TextView
在android:layout_width="fill_parent"
放置{{1}}来为自己看到此效果。
答案 3 :(得分:1)
因为在相对布局中,center_horizontal不是命令。适用于包含在线性布局中的视图。对于RelativeLayout,您需要使用
android:layout_centerInParent="true";
作为线性
中的中心重力命令或
android:layout_centerHorizontal="true"
作为线性的重心center_horizontal。