Android RelativeLayout将另一个视图右上角的一个视图的中心对齐

Foa*_*Guy 28 android alignment android-relativelayout

我有使用RelativeLayout的经验,但我从来没有遇到过一种方法来解决我提出的问题(除了硬编码边距值,我想避免.)

我想尝试在RelativeLayout中创建类似下图的内容:

在此输入图像描述

该框是它自己的视图,我想让包含橙色圆圈的视图居中在包含蓝色框的视图的右上角.

我尝试了android:alignTop="boxView",android:alignRight="boxView"但是把我的橙色圆圈完全放在我的盒子里.我希望它是这样圆圈位于盒子右上角的中心.

有人知道如何通过RelativeLayout获得结果吗?优选地,不必为了橙色点视图而将边缘硬编码远离屏幕的边缘.

Bob*_*ke4 30

此代码创建了您要查找的内容,但确实使用了边距.现在,如果这是您正在创建的动态结构,则可以在代码中设置边距.如您所见,我使用负边距将右上角的形状移动到蓝框之外.这些需要是你想要移动的圆的一半高度.您可以在代码中执行所有这些操作,使圆圈位于右上角.

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:id="@+id/linearLayout1"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:background="#0000FF"
            android:orientation="vertical" >
        </LinearLayout>

        <LinearLayout
            android:layout_width="26dp"
            android:layout_height="26dp"
            android:layout_alignRight="@+id/linearLayout1"
            android:layout_alignTop="@+id/linearLayout1"
            android:layout_marginRight="-13dp"
            android:layout_marginTop="-13dp"
            android:background="#FF00FF"
            android:orientation="vertical" >
        </LinearLayout>

    </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

  • 不知道负利润率.非常感谢你. (3认同)