layout_centerHorizo​​ntal不居中

时间:2012-04-25 07:15:19

标签: android android-layout

我有一个相对布局,在里面我放置了3个项目,2个图像视图和一个滚动视图。 我的布局是这样的......

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="horizontal"
    android:baselineAligned="true"
    android:background="@drawable/background">

    <RelativeLayout
        android:id="@+id/logosLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:layout_weight="1"
        android:layout_margin="16dp"
        android:gravity="center">

        <!-- An image will be placed here -->

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
        android:layout_weight="1"
        android:background="#33ffffff"
        android:gravity="center"
        android:orientation="vertical">


        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:src="@drawable/up" />

        <ScrollView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_margin="8dp"
            android:fadingEdgeLength="32dp"
            android:scrollbars="none" >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageButton
                    android:id="@+id/hotelBtn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:adjustViewBounds="true"
                    android:background="@drawable/button_background"
                    android:contentDescription="@string/hotelBtnDesc"
                    android:gravity="center"
                    android:src="@drawable/icon1" />

                <TextView
                    android:id="@+id/hotelBtnDescTxtVw"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="10dp"
                    android:gravity="center"
                    android:text="@string/hotelBtnDesc"
                    android:textColor="#ffffff"
                    android:textSize="14sp" />

                    <!-- more scrollview items -->
            </LinearLayout>

        </ScrollView>

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true" 
            android:src="@drawable/down" />

    </RelativeLayout>

</LinearLayout>

上面的代码生成了这里显示的视图:

above code executed

您可能会注意到箭头未在中心对齐,但略微向右移动。为什么会这样,我该如何解决?请注意,我已经在我的图像视图中使用了android:layout_centerHorizo​​ntal =“true”。

提前谢谢

5 个答案:

答案 0 :(得分:2)

你的问题

android:layout_margin="8dp"

从scrollview和imageView

中删除它

并将其直接传递给RelativeLayout

或添加

android:layout_marginTop="8dip"
android:layout_marginBottom="8dip"

RelativeLayout

并传递

android:layout_centerHorizontal="true"

到你的滚动视图

答案 1 :(得分:0)

尝试从 RelativeLayout 中删除android:layout_weight="1",看看它是否有效。


在LinearLayout中,属性android:orientation="horizontal"会导致您的显示水平对齐。因此,您的RelativeLayout位于中心,但由于它与另一个布局共享,这就是为什么您不能注意到差异。如果你完全删除第一个RelativeLayout(id为 logosLayout 的那个),那么我希望你能看到第二个布局在中心。

因此,首先需要定义所需的布局层次结构,然后相应地调整视图。

答案 2 :(得分:0)

如果你考虑marginRight,它们会与中心对齐,尝试在箭头上添加android:layout_margin="8dp"

答案 3 :(得分:0)

你需要设置在相对布局下设置此图像视图宽度填充父级的图像视图。

答案 4 :(得分:0)

你的android:layout_margin =“8dp”似乎只对你的scrollview有问题并直接传递给RelativeLayout但不使用margin使用padding =“8dp”。