Я хочу центрировать заголовок моей страницы.Заголовок может выглядеть как (1) Dokument1
или (3) GreatDocument
.Я хочу иметь правое и левое поля 60dp
, а имя документа имеет переменную длину.Когда я использую wrap_content
для @+id/title
, центрирование работает хорошо, однако поля не работают для длинных имен документов.Когда я использую 0dp
, поля соблюдаются, но центрирование не работает.
Как мне получить упакованную цепочку в моем ConstraintLayout, чтобы отцентрировать ее, имея динамическую длину и поля?
<android.support.constraint.ConstraintLayout
android:id="@+id/top_bar_xml"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/open_brackets"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="("
android:gravity="center_vertical"
android:layout_marginStart="60dp"
android:textSize="20sp"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintEnd_toStartOf="@id/page_count"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/page_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:gravity="center_vertical"
android:textSize="20sp"
app:layout_constraintStart_toEndOf="@id/open_brackets"
app:layout_constraintEnd_toStartOf="@id/close_brackets"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/close_brackets"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=") "
android:gravity="center_vertical"
android:textColor="@color/black"
android:textSize="20sp"
app:layout_constraintStart_toEndOf="@id/page_count"
app:layout_constraintEnd_toStartOf="@id/title"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="60dp"
android:text="DocumentTitle"
android:textSize="20sp"
android:gravity="center_vertical"
android:ellipsize="end"
app:layout_constraintStart_toEndOf="@+id/close_brackets"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
(я упростил пример, удалив ссылки на ViewModels для количества страниц и заголовка; у документа есть дополнительные представления ниже, которые имеют нижнее поле)