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, я получил следующий вывод.предварительный просмотр

Другие вопросы по тегам