我有两个Views
我用来在屏幕上安排一些buttons
。我看到结果的屏幕尺寸是横向模式中的 Moto G - 640dp * 360dp 。问题是 - buttons
根据id=center_parent
的视图而不是id=left_corner
<?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">
<View android:id="@+id/center_parent"
android:layout_centerInParent="true"
android:layout_width="0dp"
android:layout_height="0dp"/>
<View android:id="@+id/left_corner"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_toLeftOf="@+id/center_parent"
android:layout_marginRight="165dp"
android:layout_above="@+id/center_parent"
android:layout_marginBottom="150dp"
android:layout_alignParentTop="true"/>"
<Button android:id="@+id/btn1"
android:layout_height="20dp"
android:layout_width="20dp"
android:padding="0dp"
android:layout_toRightOf="@+id/left_corner"
android:layout_marginLeft="165dp"
android:layout_below="@+id/left_corner"
android:layout_marginTop="5dp"
android:text="1"
android:textColor="@android:color/black"
android:background="@drawable/star"/>
<Button android:id="@+id/btn2"
android:layout_height="20dp"
android:layout_width="20dp"
android:padding="0dp"
android:layout_toRightOf="@+id/left_corner"
android:layout_marginLeft="330dp"
android:layout_below="@+id/left_corner"
android:layout_marginTop="171dp"
android:text="2"
android:textColor="@android:color/black"
android:background="@drawable/star"/>
<Button android:id="@+id/btn3"
android:layout_height="20dp"
android:layout_width="20dp"
android:padding="0dp"
android:layout_toRightOf="@+id/left_corner"
android:layout_marginLeft="292dp"
android:layout_below="@+id/left_corner"
android:layout_marginTop="171dp"
android:text="3"
android:textColor="@android:color/black"
android:background="@drawable/star"/>
<Button android:id="@+id/btn4"
android:layout_height="20dp"
android:layout_width="20dp"
android:padding="0dp"
android:layout_toRightOf="@+id/left_corner"
android:layout_marginLeft="292dp"
android:layout_below="@+id/left_corner"
android:layout_marginTop="292dp"
android:text="4"
android:textColor="@android:color/black"
android:background="@drawable/star"/>
</RelativeLayout>!
附件是图片它在屏幕上的显示方式。即使箭头显示使用left_corner进行测量,但情况并非如此。如果我在left_corner
中将center_parent
替换为buttons
,同时安排结果是相同的。
The marked arrow is left_corner
我找到了另一种选择。所以替代方案不是我想要的。我很乐意学习这个的解释。
答案 0 :(得分:0)
layout_marginLeft
和layout_marginRight
太多了。
首先删除所有边距,您将正确看到视图。然后再开始相应地添加边距。
这里你需要观察的东西很少。
layout_marginBottom
将left_corner从center_parent
layout_marginRight
正在将left_corner从center_parent推得太远
你必须决定你想让控件放在哪里并与之对齐。
<?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">
<View android:id="@+id/center_parent"
android:layout_centerInParent="true"
android:layout_width="10dp"
android:layout_height="10dp"/>
<View android:id="@+id/left_corner"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_toLeftOf="@+id/center_parent"
android:layout_marginRight="10dp"
android:layout_above="@+id/center_parent"
android:layout_marginBottom="10dp"
android:layout_alignParentTop="true"/>"
<Button android:id="@+id/btn1"
android:layout_height="20dp"
android:layout_width="20dp"
android:padding="0dp"
android:layout_toRightOf="@+id/left_corner"
android:layout_marginLeft="10dp"
android:layout_below="@+id/left_corner"
android:layout_marginTop="0dp"
android:text="1"
android:textColor="@android:color/black"
android:background="@drawable/star"/>
<Button android:id="@+id/btn2"
android:layout_height="20dp"
android:layout_width="20dp"
android:padding="0dp"
android:layout_toRightOf="@+id/left_corner"
android:layout_marginLeft="10dp"
android:layout_below="@+id/left_corner"
android:layout_marginTop="20dp"
android:text="2"
android:textColor="@android:color/black"
android:background="@drawable/star"/>
<Button android:id="@+id/btn3"
android:layout_height="20dp"
android:layout_width="20dp"
android:padding="0dp"
android:layout_toRightOf="@+id/left_corner"
android:layout_marginLeft="10dp"
android:layout_below="@+id/left_corner"
android:layout_marginTop="40dp"
android:text="3"
android:textColor="@android:color/black"
android:background="@drawable/star"/>
<Button android:id="@+id/btn4"
android:layout_height="20dp"
android:layout_width="20dp"
android:padding="0dp"
android:layout_toRightOf="@+id/left_corner"
android:layout_marginLeft="10dp"
android:layout_below="@+id/left_corner"
android:layout_marginTop="60dp"
android:text="4"
android:textColor="@android:color/black"
android:background="@drawable/star"/>
</RelativeLayout>
使用上面的xml,我得到了以下输出。