Android textview: текст, перетекающий через RHS экрана

#android #android-layout #textview

#Android #android-макет #textview

Вопрос:

Я создал текстовое представление (в основном автоматически созданное помощником Android Studio ‘new Tabbed Activity‘) и заполнил его некоторым текстом, сохраненным в виде необработанных ресурсов. Я разрешил прокручивать представление, и все работает нормально, за исключением того, что последняя буква или две из многих строк исчезают с края экрана. То же самое с двумя устройствами с разными размерами экрана. введите описание изображения здесь

вот мой файл ресурсов:

 <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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:id="@ id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.main.PlaceholderFragment">

<TextView
    android:id="@ id/section_label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="@dimen/activity_horizontal_margin"
    android:layout_marginTop="@dimen/activity_vertical_margin"
    android:layout_marginEnd="@dimen/activity_horizontal_margin"
    android:layout_marginBottom="@dimen/activity_vertical_margin"
    android:textSize="20sp"
    android:scrollbars = "vertical"
    android:justificationMode="inter_word"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toTopOf="@ id/constraintLayout"
    tools:layout_constraintLeft_creator="1"
    tools:layout_constraintTop_creator="1" />
</androidx.constraintlayout.widget.ConstraintLayout>
 

Я попытался увеличить поля (с 20 до 50dp) — никакого эффекта, а также попробовал android: gravity =»center», но это только ухудшило ситуацию!

[Редактировать] В результате предложенных ответов представление немного изменилось; в RHS появилось поле, поэтому текст больше не исчезает «за краем» экрана, но он исчезает «за» полем. Помогает ли это? Кроме того, имеет ли какое-либо отношение тот факт, что это действие с вкладками (как я упоминал ранее)? Если я прокручиваю вбок, чтобы увидеть следующую вкладку, недостающие части слов по-прежнему не отображаются.

Ответ №1:

Это происходит потому, что ваш TextView не ограничен правым краем родительских элементов.

Вы можете исправить это, добавив в свой TextView следующее

 app:layout_constraintRight_toRightOf="parent"
 

Но вам следует избегать использования левого и правого в ваших макетах. Таким образом, правильным способом было бы добавить

 app:layout_constraintEnd_toEndOf="parent"
 

А также измените width 0dp , чтобы TextView мог занимать пространство, определенное ограничениями.

Комментарии:

1. Из-за этого LHS пропал без вести! Итак, я также добавил app:layout_constraintStart_toStartOf="parent" , и это немного улучшило ситуацию. Текст находится вплотную к краю экрана, хотя поля вообще не отображаются.

2. Никаких изменений, извините!

Ответ №2:

Используйте app:layout_constrainedWidth="true" в своем TextView с начальным и конечным ограничением, установленным на родительский.

Комментарии:

1. По-прежнему никакой реальной разницы. Я добавил еще немного информации; см. Мое недавнее редактирование