如何在相对布局中将父视图中居中的视图对齐

时间:2016-08-03 11:14:16

标签: android android-layout android-relativelayout android-percentrelativelayout

我想在一个相对布局中将centerInParent属性设置为true的视图下方对齐Framelayout。我已经尝试过layout_below但它不起作用。然后我试图删除centerInParent并尝试了center_horizo​​ntal和center_vertical,但它也没有帮助,FrameLayout仍然停留在布局的顶部。 这是我的布局代码:

<android.support.percent.PercentRelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="?actionBarSize"
            android:layout_marginTop="?actionBarSize"
            android:background="@android:color/transparent">

            <ImageView
                android:id="@+id/backdrop"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@android:color/white"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                app:layout_collapseMode="parallax"
                app:layout_collapseParallaxMultiplier="0"
                tools:src="@drawable/car_engine" />

            <View
                android:id="@+id/center_point"
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:background="@color/g" />

            <View
                android:id="@+id/tab_scrim"
                android:layout_width="match_parent"
                android:layout_height="@dimen/gradiant_height"
                android:layout_alignParentBottom="true"
                android:background="@drawable/tab_scrim"
                app:layout_heightPercent="40%" />

            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/center_point">

                <TextView
                    android:id="@+id/car_title"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingBottom="5dp"
                    android:paddingTop="2dp"
                    android:textAlignment="center"
                    android:textColor="@color/w"
                    android:textSize="20sp"
                    android:textStyle="bold"
                    tools:text="@string/car_header_text" />

                <TextView
                    android:id="@+id/car_subtitle"
                    style="@style/TitleWhite"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/car_title"
                    android:paddingBottom="4dp"
                    android:paddingTop="4dp"
                    android:text="@string/car_sub_header"
                    android:textAlignment="center" />
            </FrameLayout>
        </android.support.percent.PercentRelativeLayout>

4 个答案:

答案 0 :(得分:1)

请试试这个。

<FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:ali="@id/center_point">

            <TextView
                android:id="@+id/car_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingBottom="5dp"
                android:paddingTop="2dp"
                android:textAlignment="center"
                android:textColor="@color/w"
                android:textSize="20sp"
                android:textStyle="bold"
                tools:text="@string/car_header_text" />

            <TextView
                android:id="@+id/car_subtitle"
                style="@style/TitleWhite"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/car_title"
                android:paddingBottom="4dp"
                android:paddingTop="4dp"
                android:text="@string/car_sub_header"
                android:textAlignment="center" />
        </FrameLayout>

答案 1 :(得分:1)

aggregation身高设置为PercentRelativeLayout

match_parent

答案 2 :(得分:0)

请检查您是否错误地使用 android:ali

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/center_point">

您的PercentRelativeLayout高度必须是固定的或match_parent

答案 3 :(得分:0)

这是我的代码

<?xml version="1.0" encoding="utf-8"?>

<ImageView
    android:id="@+id/backdrop"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:fitsSystemWindows="true"
    android:scaleType="centerCrop"
    app:layout_collapseMode="parallax"
    app:layout_collapseParallaxMultiplier="0"
    tools:src="@mipmap/ic_launcher" />

<View
    android:id="@+id/tab_scrim"
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:layout_alignParentBottom="true"
    android:background="@android:color/black"
    app:layout_heightPercent="40%" />

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:background="@android:color/holo_red_dark"
    android:layout_centerVertical="true">

    <TextView
        android:id="@+id/car_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="5dp"
        android:paddingTop="2dp"
        android:textAlignment="center"
        android:textColor="@android:color/black"
        android:textSize="20sp"
        android:textStyle="bold"
        android:text="car carcar"
        android:layout_gravity="left"/>

    <TextView
        android:id="@+id/car_subtitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/car_title"
        android:paddingBottom="4dp"
        android:paddingTop="4dp"
        android:text="car header subtitle"
        android:textAlignment="center"
        android:layout_gravity="bottom"/>
</FrameLayout>

和屏幕截图 red block is framelayout