Android Studio Текст не соответствует layout_margin, когда я запускаю приложение на эмуляторе - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь решить проблему с полем макета, когда после запуска приложения в эмуляторе текст состояния не отображается там, где я его хочу.Прилагается полный код макета.Как я могу улучшить код, чтобы смягчить эту проблему в будущем?

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
tools:context=".SettingsActivity">

<de.hdodenhof.circleimageview.CircleImageView
    android:id="@+id/settings_profile_image"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="20dp"
    android:src="@drawable/default_profile" />

<TextView
    android:id="@+id/settings_username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="244dp"
    android:text="@string/user_name"
    android:textColor="@android:color/background_light"
    android:textSize="24sp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/settings_user_status"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="5dp"
    android:layout_marginBottom="260dp"
    android:text="@string/user_profile_status"
    android:textColor="@android:color/background_light"
    android:textSize="18sp" />

</RelativeLayout>

enter image description here

Чего мне не хватает?

Ответы [ 3 ]

0 голосов
/ 13 декабря 2018

Попробуйте это. Вам просто нужно удалить android: layout_marginBottom = "260dp" и android: layout_alignParentBottom = "true" и добавить android: layout_below = "@ + id/ settings_username " в settings_user_status

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimary"
    tools:context=".SettingsActivity">

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/settings_profile_image"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:src="@drawable/default_profile" />

    <TextView
        android:id="@+id/settings_username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="244dp"
        android:text="@string/user_name"
        android:textColor="@android:color/background_light"
        android:textSize="24sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/settings_user_status"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="5dp"
        android:layout_below="@+id/settings_username"
        android:text="@string/user_profile_status"
        android:textColor="@android:color/background_light"
        android:textSize="18sp" />

</RelativeLayout>
0 голосов
/ 14 декабря 2018

Во-первых, вы можете попробовать макет ограничения, введенный android как часть дизайна материала android, который направлен на то, чтобы избежать ненужных вложенных видов.В макете ограничений можно перетаскивать и перетаскивать их, и им можно назначать поля, кратные 8. Настоятельно рекомендуется использовать макеты ограничений в отличие от старого вложения макетов.

0 голосов
/ 13 декабря 2018

, если вы хотите получить статус ниже имени пользователя, просто используйте

android:layout_below="@+id/settings_username"

. В вашем текущем макете marginTop бесполезен, вертикальное положение определяется

android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="260dp"

Лучшеиспользуйте ContraintLayout, который удалит все неиспользуемые атрибуты (например, если маржа бесполезна, атрибут маржи автоматически удаляется).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...