Android:相对布局+框架布局->查看对齐问题

mrzz3bfm  于 2023-02-27  发布在  Android
关注(0)|答案(2)|浏览(158)

我需要将顶部View(包裹在FrameLayout中)与顶部padding/marginImageView的顶部对齐。问题是此视图在ImageView的填充/边距上方对齐。是否有任何方法可以忽略ImageView的边距和填充,并将该视图与可见图像的顶部对齐?

android:layout_alignParentTop="true"
android:layout_alignTop="@id/stop_timeline_icon"
android:layout_above="@id/stop_timeline_icon"

参数只是推动了FrameLayout的底部边缘以上的父。(所以我看不到它)
这就是我想要实现的目标。橙色线是我的FrameLayout,灰色方块是我的图标,上边距为:

布局:

<RelativeLayout
        android:id="@+id/clickArea"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clipToPadding="false"
        android:clipChildren="false"
        android:background="@drawable/menu_selector_background">

        <FrameLayout
            android:id="@+id/stop_timeline_top_layout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignStart="@id/stop_timeline_icon"
            android:layout_alignEnd="@id/stop_timeline_icon"
            android:layout_alignParentTop="true"
            android:layout_alignTop="@id/stop_timeline_icon"
            android:layout_above="@id/stop_timeline_icon">

            <View
                android:id="@+id/stop_timeline_top"
                android:layout_width="2dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:background="@color/doveGrey" />

        </FrameLayout>

        <ImageView
            android:id="@+id/stop_timeline_icon"
            android:layout_marginTop="18dp"
            android:layout_width="20dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="16dp"
            android:layout_marginEnd="16dp"
            android:src="@drawable/stop_icon"
            app:tint="@color/doveGrey"/>

    </RelativeLayout>
umuewwlo

umuewwlo1#

你可以用margin来表示负dp,像这样

android:layout_marginStart="-16dp"
mkh04yzy

mkh04yzy2#

您需要向FrameLayout添加一个负边距,其方向与ImageView的方向相反。
由于ImageView边距为android:layout_marginTop,则添加android:layout_marginBottom

<FrameLayout
    android:id="@+id/stop_timeline_top_layout"
    ...
    android:layout_marginBottom="-18dp"

相关问题