Размер шрифта из собственных настроек перекрывается в ConstraintLayout - PullRequest
0 голосов
/ 19 марта 2019

У меня есть приложение с ConstraintLayout, в котором я организовываю текстовое представление и круговую диаграмму.

        <android.support.v7.widget.CardView
            android:id="@+id/crv1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            app:cardBackgroundColor="@color/mycolor1"
            app:cardCornerRadius="16dp"
            app:cardElevation="8dp">

            <android.support.constraint.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingBottom="8dp">

                <TextView
                    android:id="@+id/txv1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="8dp"
                    android:text="MY VALUES"
                    android:textColor="@color/colorPrimary"
                    android:textSize="18dp"
                    android:textStyle="bold"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />
                <TextView
                    android:id="@+id/txv2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="8dp"
                    android:text="MY VALUE 1"
                    android:textColor="@color/colorPrimary"
                    android:textSize="18dp"
                    android:textStyle="bold"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/txv1" />
                <TextView
                    android:id="@+id/txv3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="8dp"
                    android:textAlignment="viewEnd"
                    android:textColor="@color/colorPrimary"
                    android:textSize="18dp"
                    android:textStyle="bold"
                    app:layout_constraintEnd_toStartOf="@+id/pic1"
                    app:layout_constraintTop_toBottomOf="@+id/txv1" />

                <TextView
                    android:id="@+id/txv4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="8dp"
                    android:text="MY VALUE 2"
                    android:textColor="@color/colorGrey"
                    android:textSize="18dp"
                    android:textStyle="bold"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/txv2" />

                <TextView
                    android:id="@+id/txv5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="8dp"
                    android:textAlignment="viewEnd"
                    android:textColor="@color/colorGrey"
                    android:textSize="18dp"
                    android:textStyle="bold"
                    app:layout_constraintEnd_toStartOf="@+id/pic1"
                    app:layout_constraintTop_toBottomOf="@+id/txv3" />

                <com.github.mikephil.charting.charts.PieChart
                    android:id="@+id/pic1"
                    android:layout_width="@dimen/dim_pie_chart"
                    android:layout_height="@dimen/dim_pie_chart"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/txv1" />

            </android.support.constraint.ConstraintLayout>

        </android.support.v7.widget.CardView>

Это мой результат, который отлично работает, если размер шрифта из родных настроек "нормальный": enter image description here

Но если я увеличу размер шрифта из собственных настроек Android из: enter image description here

Кому:

enter image description here

Мои текстовые представления перекрываются ...

enter image description here

Есть ли способ заставить мой код игнорировать настройки размера шрифта? В качестве альтернативы я могу ограничить свои текстовые просмотры слева к концу моего начала текстового размера справа и установить размер эллипса, например:

<TextView
android:id="@+id/txv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:ellipsize="end"
android:maxLines="1"
android:text="MY VALUE 1"
android:textColor="@color/colorPrimary"
android:textSize="18dp"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/txv3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txv1" />

<TextView
android:id="@+id/txv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:textAlignment="viewEnd"
android:textColor="@color/colorPrimary"
android:textSize="18dp"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/pic1"
app:layout_constraintTop_toBottomOf="@+id/txv1" />

В любом случае, если я сделаю это, мои текстовые представления слева не будут обрезаны слева от родителя, и результат не будет хорошим. Как заставить текстовые представления обрезать слева от родителя? Спасибо

1 Ответ

1 голос
/ 19 марта 2019

Попробуйте заменить

<TextView 
android:id="@+id/txv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:ellipsize="end"
android:maxLines="1"
android:text="MY VALUE 1"
android:textColor="@color/colorPrimary"
android:textSize="18dp"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/txv3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txv1" />

с

<TextView
android:id="@+id/txv2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:ellipsize="end"
android:maxLines="1"
android:text="MY VALUE 1"
android:textColor="@color/colorPrimary"
android:textSize="18dp"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/txv3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txv1" />

Ключ в этой строке:

android:layout_width="0dp"

Это приведет к тому, что ваше левое представление закончится правильно с ограничением.

...