Android: возможная ошибка в Android
У меня два 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
при оформлении результат тот же.
Отмеченная стрелка - left_corner
Я нашел альтернативу. Так что альтернатива не то, что я ищу. Я буду любить изучать объяснение этого.
1 ответ
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, я получил следующий вывод.