新しいConstraint
レイアウトを使用してレイアウトを作成しています。画面幅のほぼ全体を占めるButton
が必要であり、制約を使用すると簡単です。
画像でわかるように、幅を0dp
(任意のサイズ)に設定していますが、ボタンテキストの通常の通常のテキストが中央に貼り付けられません。
私が試した:-重力を中心に設定-textAlignmentを中心に設定
このプロパティは0dp
width(任意のサイズ)では機能しないようです。
そこで、重心を使って幅をmatch_parent
に設定してみました。
少し右側です。
誰かがその動作を修正する方法を知っていますか?
Alpha4を使用していることに注意してください
compile 'com.Android.support.constraint:constraint-layout:1.0.0-alpha4'
XMLコード
<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:id="@+id/content_login"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
tools:context="br.com.marmotex.ui.LoginActivityFragment"
tools:showIn="@layout/activity_login">
<Button
Android:text="Log in"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:id="@+id/btLogin"
Android:layout_marginTop="48dp"
app:layout_constraintTop_toBottomOf="@+id/textView6"
Android:layout_marginEnd="16dp"
app:layout_constraintRight_toRightOf="@+id/content_login"
Android:layout_marginRight="16dp"
Android:layout_marginStart="16dp"
app:layout_constraintLeft_toLeftOf="@+id/content_login"
Android:layout_marginLeft="16dp"
Android:textColor="@Android:color/white"
Android:background="@color/BackgroundColor" />
</Android.support.constraint.ConstraintLayout>
[〜#〜] edit [〜#〜]ConstraintLayout
alpha4のバグでした。
[〜#〜] update [〜#〜]Googleがリリースしましたalpha5、上記のコードが機能するようになりました。 リリースノート
やってみました ?
Android:textAlignment="center"
これは私にとってはうまくいきます。
これはバグです。ただし、LinearLayout(または他の標準のViewGroup)内にボタンを配置することで回避できます。親ビューとボタンの幅をmatch_parent
に設定し、ボタンに設定した制約を親レイアウトに移動します。
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@+id/parent_left"
app:layout_constraintTop_toTopOf="@+id/parent_top"
app:layout_constraintRight_toRightOf="@+id/parent_right">
<Button
Android:id="@+id/test"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="Centered Text"/>
</LinearLayout>
これらの制約があるためだと思いますapp:layout_constraintRight_toRightOf app:layout_constraintLeft_toLeftOf
現在のボタンを次のボタンに置き換えます。
<Button
Android:text="Log in"
Android:layout_width="match_parent"
Android:layout_height="48dp"
Android:id="@+id/btLogin"
Android:textColor="@Android:color/white"
Android:background="@color/BackgroundColor"
Android:gravity="center"
Android:textAlignment="center"
Android:layout_marginTop="100dp"
tools:layout_editor_absoluteX="-1dp"
app:layout_constraintTop_toBottomOf="@+id/textView6" />
これがお役に立てば幸いです。