如何将盒子的中心与另一个盒子的左边缘对齐?

时间:2016-02-11 01:51:58

标签: android layout alignment center relativelayout

Image of what I want to do

我想将较小的红色框的中心与黑匣子的左边缘对齐。红色框的宽度和高度设置为wrap_content,里面有文本视图。黑匣子占据了屏幕宽度的一半。它采用线性布局,左右两侧有垫片,垫片的重量为0.25,而黑盒的重量为.5重量。

我更喜欢在XML 中执行此操作而不使用边距。红色框可能包含2个字符或20个,内容来自服务器。

只有“toLeftOf”和“alignLeft”。我想要做的主要是“将盒子的中心对准另一个盒子的左边缘”。

2 个答案:

答案 0 :(得分:0)

这是一个只使用XML的简单实现。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:id="@+id/imageView"
    android:background="#000000"
    android:layout_marginLeft="50dp" />
<ImageView
    android:layout_width="50dp"
    android:layout_height="25dp"
    android:id="@+id/imageView2"
    android:background="#ff0000"
    android:layout_marginTop="-40dp"
    android:layout_marginLeft="25dp" />

答案 1 :(得分:0)

您可以尝试使用此xml。但你想要的是带有动态内容的黑匣子中心,但是不推荐,原因是,如果内容太长或太短,它在UI中看起来不会很好,因为你想要动态地保持红框的宽度以及左边缘也是。所以黑盒子大小也需要每次都改变。这是不好的。请尝试我的解决方案,您可以随时根据您的思考过程修改此布局。

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

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


        <View
            android:id="@+id/view_1"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_marginLeft="50dp"
            android:layout_marginRight="50dp"
            android:background="#000000" />


        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@id/view_1"
            android:layout_centerVertical="true"
            android:background="#ff0000">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="10dp"
                android:text="Hi"
                android:textColor="#ffffff" />


        </RelativeLayout>

    </RelativeLayout>
</RelativeLayout>

希望它会对你有所帮助!