我想将较小的红色框的中心与黑匣子的左边缘对齐。红色框的宽度和高度设置为wrap_content,里面有文本视图。黑匣子占据了屏幕宽度的一半。它采用线性布局,左右两侧有垫片,垫片的重量为0.25,而黑盒的重量为.5重量。
我更喜欢在XML 中执行此操作而不使用边距。红色框可能包含2个字符或20个,内容来自服务器。
只有“toLeftOf”和“alignLeft”。我想要做的主要是“将盒子的中心对准另一个盒子的左边缘”。
答案 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>
希望它会对你有所帮助!