Как создать макет, который правильно масштабируется в Android Studio

В течение нескольких месяцев я пытался создать такой макет: Как создать макет, который правильно масштабируется в Android Studioin Android studio, который займет весь экран (но в черных полях, которые вы видите на заднем плане, будет прокрутка textViews). структура папок, указанная на веб-сайте Google Developers (hdpi, xhdpi, xxhdpi, xxxhdpi), и макет с использованием ConstraintLayout, но все же я сталкиваюсь с той же проблемой. горизонтальные textViews, хотя экран пользователя изменяется по размеру и плотности, они перемещаются с желаемого положения, тем самым разрушая пользователя Я сбит с толку, так как сделал все, что в моих силах, чтобы исправить это. Я прочитал несколько статей, но если у кого-то есть хорошие предложения по чтению, не стесняйтесь, дайте мне знать.

Вот мой файл .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"
    android:background = "@drawable/card_details_open">
<android.support.constraint.Guideline
    android:id = "@+id/hor_top"
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:orientation = "horizontal"
    app:layout_constraintGuide_begin = "111dp" />

<TextView
    android:id = "@+id/first"
    android:layout_width = "0dp"
    android:layout_height = "wrap_content"
    android:layout_marginEnd = "8dp"
    android:ellipsize = "marquee"
    android:focusable = "true"
    android:focusableInTouchMode = "true"
    android:fontFamily = "monospace"
    android:marqueeRepeatLimit = "marquee_forever"
    android:scrollHorizontally = "true"
    android:singleLine = "true"
    android:text = "LEADER SKILL OR SOMETHING that's long and will make the text scroll in order to show something"
    android:textColor = "@color/white"
    app:layout_constraintEnd_toStartOf = "@+id/vert_right"
    app:layout_constraintStart_toStartOf = "@+id/vert_left"
    app:layout_constraintTop_toTopOf = "@+id/hor_top" />

<TextView
    android:id = "@+id/second"
    android:layout_width = "0dp"
    android:layout_height = "19dp"
    android:layout_marginEnd = "8dp"
    android:layout_marginTop = "18dp"
    android:ellipsize = "marquee"
    android:focusable = "true"
    android:focusableInTouchMode = "true"
    android:fontFamily = "monospace"
    android:marqueeRepeatLimit = "marquee_forever"
    android:paddingBottom = "-10dp"
    android:scrollHorizontally = "true"
    android:singleLine = "true"
    android:text = "LEADER SKILL OR SOMETHING that's long and will make the text scroll in order to show something"
    android:textColor = "@android:color/holo_blue_light"
    app:layout_constraintEnd_toStartOf = "@+id/vert_right"
    app:layout_constraintStart_toStartOf = "@+id/first"
    app:layout_constraintTop_toBottomOf = "@+id/first" />

<TextView
    android:id = "@+id/third"
    android:layout_width = "0dp"
    android:layout_height = "wrap_content"
    android:layout_marginBottom = "8dp"
    android:layout_marginEnd = "8dp"
    android:ellipsize = "marquee"
    android:focusable = "true"
    android:focusableInTouchMode = "true"
    android:fontFamily = "monospace"
    android:marqueeRepeatLimit = "marquee_forever"
    android:paddingBottom = "@dimen/_2sdp"
    android:scrollHorizontally = "true"
    android:singleLine = "true"
    android:text = "LEADER SKILL OR SOMETHING that's long and will make the text scroll in order to show something"
    android:textColor = "@color/white"
    app:layout_constraintBottom_toTopOf = "@+id/hor_bot"
    app:layout_constraintEnd_toStartOf = "@+id/vert_right"
    app:layout_constraintStart_toStartOf = "@+id/second" />

<android.support.constraint.Guideline
    android:id = "@+id/hor_bot"
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:orientation = "horizontal"
    app:layout_constraintGuide_begin = "198dp" />

<LinearLayout
    android:id = "@+id/linearLayout3"
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    android:orientation = "horizontal">

    <TextView
        android:id = "@+id/textView12"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_marginStart = "35dp"
        android:layout_weight = "1"
        android:text = "TextView"
        android:textColor = "@color/white" />

    <TextView
        android:id = "@+id/textView13"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_marginEnd = "10dp"
        android:layout_marginStart = "25dp"
        android:layout_weight = "0.30"
        android:text = "TextView"
        android:textColor = "@color/white" />

    <TextView
        android:id = "@+id/textView11"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_marginStart = "50dp"
        android:layout_weight = "1"
        android:text = "TextView"
        android:textColor = "@color/white" />
</LinearLayout>

<android.support.constraint.Guideline
    android:id = "@+id/vert_left"
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:orientation = "vertical"
    app:layout_constraintGuide_begin = "72dp" />

<android.support.constraint.Guideline
    android:id = "@+id/vert_right"
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:orientation = "vertical"
    app:layout_constraintGuide_begin = "335dp" />

</android.support.constraint.ConstraintLayout>

пожалуйста, опубликуйте свой XML-файл макета

Locdoc01 23.04.2018 15:46

@ Locdoc01 добавил: D

Stelios Papamichail 23.04.2018 15:48
0
2
123
1

Ответы 1

Это потому, что ваша направляющая «vert_right» ограничена фиксированным расстоянием до границы макета оставил, но должна быть ограничена правой границей макета. Просто измени это

<android.support.constraint.Guideline
    android:id = "@+id/vert_right"
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:orientation = "vertical"
    app:layout_constraintGuide_begin = "335dp" />

в это

<android.support.constraint.Guideline
    android:id = "@+id/vert_right"
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:orientation = "vertical"
    app:layout_constraintGuide_end = "72dp" />

К сожалению, нет, textViews все еще перемещаются на разных телефонах.

Stelios Papamichail 26.04.2018 15:03

ммм, тогда я думаю, я неправильно понял твою проблему. Вы имеете в виду, что вы не хотите, чтобы TextView работал (перемещался) по экрану вообще?

Locdoc01 26.04.2018 15:25

нет, я просто не хочу, чтобы он двигался. Мне нужно, чтобы макет правильно масштабировался, но textViews продолжают перемещаться с места.

Stelios Papamichail 26.04.2018 15:26

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