Android Studio View отображается иначе, чем на моем телефоне (Samsung Galaxy S5) - PullRequest
0 голосов
/ 10 апреля 2019

Я создаю приложение на Android и сталкиваюсь с проблемой. Когда я иду на редактирование в Android Studio, все элементы моего приложения выглядят так, как задумано. Я использую ConstraintLayout и проверяю, что все использует sp в качестве своих единиц для обеспечения масштабирования. Я пытался изменить поля и отступы, но независимо от того, что я сделал, кнопки на моем телефоне сжимаются.

Вот как выглядит представление в Android Studio (как я хочу, чтобы оно выглядело): Android Studio View

Вот как это выглядит на моем телефоне (Samsung Galaxy S5): My Phone View

На моем телефоне кнопки переходят друг в друга, но на моей андроид-студии между ними есть пустое пространство. Как я могу изменить свой код для создания моего намеренного изображения?

XML-код:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
    tools:context=".Settings">

    <Button
        android:id="@+id/homeButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginBottom="8dp"
        android:onClick="homeMenu"
        android:text="@string/homeButton"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

    <Button
        android:id="@+id/calculateButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginBottom="8dp"
        android:onClick="programMenu"
        android:text="@string/calculateButton"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <TextView
        android:id="@+id/settingsIntroTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:text="@string/settingsIntroTextView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

Ответы [ 2 ]

2 голосов
/ 10 апреля 2019

@ Ответ Джона Джо действительно хорош, но при использовании android:layout_height="wrap_content" и android:layout_width="wrap_content" существует небольшая опасность - если ширина просмотра очень велика, это может испортить интерфейс.простое решение состоит в том, чтобы ограничить оба края кнопки для вашего textView, и таким образом ваша кнопка будет соответствующим образом изменена и не испортит пользовательский интерфейс.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">


<Button
    android:id="@+id/homeButton"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginBottom="8dp"
    android:text="return home"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/settingsIntroTextView"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.964" />

<Button
    android:id="@+id/calculateButton"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginBottom="8dp"
    android:text="Create program"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/settingsIntroTextView"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.964" />

<TextView
    android:id="@+id/settingsIntroTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:text=" setting page"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
2 голосов
/ 10 апреля 2019

Попробуйте этот ответ

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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">

    <Button
        android:id="@+id/homeButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="homeMenu"
        android:text="return home"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_marginTop="8dp" app:layout_constraintTop_toTopOf="parent"
        android:layout_marginBottom="8dp" app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintVertical_bias="0.964" android:layout_marginEnd="8dp"/>

    <Button
        android:id="@+id/calculateButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="programMenu"
        android:text="Create program"
        android:layout_marginBottom="8dp"
        app:layout_constraintBottom_toBottomOf="parent" android:layout_marginTop="8dp"
        app:layout_constraintTop_toTopOf="parent" android:layout_marginEnd="8dp"
        app:layout_constraintEnd_toStartOf="@+id/homeButton" android:layout_marginStart="8dp"
        app:layout_constraintStart_toStartOf="parent" app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintVertical_bias="0.964"/>

    <TextView
        android:id="@+id/settingsIntroTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:text="setting"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

enter image description here

...