私は3つのTextViews "hi"
、"x"
と"Hello World"
を持っています。 Hello Worldはわずか1行ですが、layout_width
とlayout_height
がwrap_content
に設定されています。
私はTextViewsのボックスの下部を簡単に整列させることができますが、テキスト自体が整列されないように、異なるフォントサイズがあります。
TextViewに1行しかない場合は、さまざまなXMLパラメータapp:layout_constraintBaseline_toBaselineOf="@+id/text
が見つかりました。しかし、私が2行以上(Hello World Textviewのように)持っている場合、考慮されるベースラインは「世界」ではなく 'hello'にあります。
「こんにちは」の代わりに「世界」という単語の下のベースラインを考慮するための設定を変更する方法はありますか?
Afaik、今日の制約のようにこのタスクを実行する方法はありません。
「HelloWorldTextView」の内容を事前に知っている場合は、行を複数のTextViewsに分割してからapp:layout_constraintBaselineToBaselineOf
を使用したい場合があります。
私はこれがトリッキーな回避策であることを知っていますが、それは頭に浮かぶ唯一の方法です。
使用ガイドライン
ConstraintLayout用のガイドラインヘルパーオブジェクトを表すユーティリティクラス。ヘルパーオブジェクトはデバイスに表示されません(それらはview.goneとしてマークされています)、レイアウト目的でのみ使用されます。それらは制約の範囲内でのみ機能します。
ガイドラインは水平または垂直方向のいずれかです。
a)垂直ガイドラインにはゼロの幅とそれらの制約範囲親の高さがあります
b)水平方向のガイドラインはゼロの高さとそれらのConstraintLayoutの幅を持っています
ウィジェットは、ガイドラインに制約され、複数のウィジェットを1つのガイドラインから容易に配置することができ、またはパーセントの位置決めを使用することによって無効なレイアウト動作を可能にすることができます。
コード:-
<?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:layout_width="match_parent"
Android:layout_height="match_parent">
<androidx.constraintlayout.widget.Guideline
Android:id="@+id/guideline"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
app:layout_constraintGuide_percent=".4"
/>
<TextView
Android:id="@+id/textViewHi"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
Android:layout_marginLeft="50dp"
Android:text="hi"
Android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/guideline" />
<TextView
Android:id="@+id/textViewX"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@+id/textViewHi"
Android:layout_marginLeft="50dp"
Android:text="x"
Android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/guideline" />
<TextView
Android:id="@+id/textViewHelloWorld"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@+id/textViewX"
Android:layout_marginLeft="50dp"
Android:text="Hello World"
Android:textSize="45sp"
app:layout_constraintBottom_toTopOf="@+id/guideline" />
</androidx.constraintlayout.widget.ConstraintLayout>
_