ConstraintLayout Bumping TextView вне экрана - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть XML-файл с ImageView и TextView.Каждый раз, когда TextView заполняется, текст исчезает с экрана.Я посмотрел на других людей, у которых была такая же проблема, и общее решение, похоже, состоит в том, чтобы установить ширину Textview равной 0dp.Это не сработало для меня.Хотите знать, если кто-нибудь знает, почему?

Вот мой XML-файл constraintLayout:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">

<ImageView
    android:id="@+id/weather_icon"
    app:layout_constraintRight_toLeftOf="@id/weather_data"
    android:layout_width="50dp"
    android:layout_height="match_parent" />

<TextView
    android:id="@+id/weather_data"
    android:text="EXAMPLE"
    android:textStyle="bold"
    android:paddingRight="16dp"
    style="@style/TextAppearance.AppCompat.Large"
    app:layout_constraintLeft_toRightOf="@id/weather_icon"
    app:layout_constraintEnd_toEndOf="parent"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/> 

Вот как это выглядит, текст явно обрезается:

enter image description here

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Вы должны установить ширину TextView на match_constraint, которая в XML будет 0dp.

И я вижу, что вы используете нотацию влево / вправо и начало / конец.Придерживайтесь только одного из них.

Я рекомендую вам использовать начальную / конечную нотацию, поскольку в вашем приложении могут использоваться устройства, язык которых читается справа налево, т. Е. Арабский, поэтому используйтеначало / конец, вам не нужно беспокоиться об этих устройствах.

0 голосов
/ 26 апреля 2018

Спасибо Сандипу и Мартину.Я объединил их предложения, и это хорошо работает в макете:

  <ImageView
    android:id="@+id/weather_icon"
    app:layout_constraintEnd_toStartOf="@id/weather_data"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:layout_width="50dp"
    android:layout_height="wrapcontent" />

<TextView
    android:id="@+id/weather_data"
    android:text="EXAMPLE"
    android:textStyle="bold"
    android:paddingRight="16dp"
    app:layout_constraintStart_toEndOf="@id/weather_icon"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    style="@style/TextAppearance.AppCompat.Large"
    android:layout_width="0dp"
    android:layout_height="wrap_content" />
0 голосов
/ 25 апреля 2018

Я получил решение вашей проблемы, просто используйте его:

<?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">
    <ImageView
        android:id="@+id/weather_icon"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toLeftOf="@id/weather_data"
        android:layout_width="50dp"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/weather_data"
        android:text="EXAMPLE "
        android:textStyle="bold"
        android:paddingRight="16dp"
        style="@style/TextAppearance.AppCompat.Large"
        app:layout_constraintLeft_toRightOf="@id/weather_icon"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_width="0dp"
        android:layout_height="wrap_content"/>
</android.support.constraint.ConstraintLayout>
...