写真にあるように、テキストは壁から外れています。これはとても奇妙な振る舞いであり、バグだと思います
以下はスクリーンショットです。
ヘッダー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:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="?android:attr/windowBackground"
Android:orientation="vertical">
<TextView
Android:id="@+id/street_name"
Android:layout_width="wrap_content"
Android:layout_height="0dp"
Android:layout_marginStart="15dp"
Android:text="street name"
Android:textColor="?AppTheme.InformationText"
Android:textSize="14sp"
Android:textStyle="bold"
Android:gravity="center"
Android:layout_marginTop="8dp"
Android:layout_marginRight="8dp"
Android:layout_marginBottom="19dp"
Android:layout_marginLeft="0dp"
app:layout_constraintWidth_default="wrap"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="@+id/guideline29"
app:layout_constraintTop_toTopOf="@+id/guideline37"
app:layout_constraintRight_toLeftOf="@+id/guideline30"
app:layout_constraintHorizontal_bias="0.605"
app:layout_constraintVertical_bias="0.0"/>
<ImageView
Android:id="@+id/street_view_image"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:adjustViewBounds="true"
Android:padding="6dp"
Android:scaleType="fitCenter"
tools:layout_constraintLeft_creator="1"
Android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="@+id/country_flag_image"
app:layout_constraintBottom_toBottomOf="parent"
Android:layout_marginBottom="0dp"
app:layout_constraintRight_toLeftOf="@+id/guideline29"
Android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="@+id/guideline37"
Android:layout_marginTop="8dp"/>
<ImageView
Android:id="@+id/country_flag_image"
Android:layout_width="0dp"
Android:layout_height="0dp"
Android:layout_marginLeft="4dp"
Android:layout_marginStart="4dp"
Android:layout_marginTop="8dp"
Android:adjustViewBounds="true"
Android:paddingBottom="5dp"
Android:paddingLeft="5dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:layout_constraintLeft_creator="1"
tools:layout_constraintTop_creator="1"
/>
<de.hdodenhof.circleimageview.CircleImageView
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/exit_image"
Android:layout_width="46dp"
Android:layout_height="46dp"
Android:layout_marginBottom="8dp"
Android:layout_marginRight="-4dp"
Android:src="@drawable/exit_custom"
app:border_color="#FF000000"
app:layout_constraintBottom_toBottomOf="@+id/street_view_image"
app:layout_constraintRight_toRightOf="@+id/street_view_image"
tools:layout_constraintBottom_creator="1"
tools:layout_constraintRight_creator="1"
/>
<Android.support.constraint.Guideline
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/guideline29"
Android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"/>
<Android.support.constraint.Guideline
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/guideline30"
app:layout_constraintGuide_begin="395dp"
Android:orientation="vertical"/>
<Android.support.constraint.Guideline
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/guideline37"
app:layout_constraintGuide_begin="8dp"
Android:orientation="horizontal"/>
</Android.support.constraint.ConstraintLayout>
street_name
というTextView
というテキストを画面外に出さないようにするにはどうすればよいですか?私は MaterialDrawer を使用しますが、これが何かと関係があるとは思いません。デバイスは、Android 6.0.1。ConstraintLayoutバージョンcom.Android.support.constraint:constraint-layout:1.0.2
in Android Studio 2.3.3を使用)
セットする Android:layout_width="0dp"
にとって street_name
。これにより、制約と一致するようになり、境界内に保持する必要があります。
動作しない? street_name
は、右側にguideline30
at 395dp
。 395dp
画面の右側から外れていますか?
LayconstraintEnd_toEndOfを追加します
app:layout_constraintEnd_toEndOf = "parent"
and width 0dp
Android:layout_width = "0dp"
幅0dpのみを設定しても機能しません
使用する app:layout_constraintEnd_toEndOf
の代わりに app:layout_constraintRight_toRightOf
また、状況によってはRight_otRightが間違って表示される場合があるため
そして、Start_toStartOf
の代わりに Left_toLeft
他の人が言ったように、セットAndroid:layout_width="0dp"
0dp
は一致制約を意味します
<TextView Android:id="@+id/street_name"...>
には、次のようにAndroid:layout_width="0dp"
とAndroid:layout_height="wrap_content"
を使用する必要があります。
<TextView
Android:id="@+id/street_name"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_marginStart="15dp"
Android:text="street name"
Android:textColor="?AppTheme.InformationText"
Android:textSize="14sp"
Android:textStyle="bold"
Android:gravity="center"
Android:layout_marginTop="8dp"
Android:layout_marginRight="8dp"
Android:layout_marginBottom="19dp"
Android:layout_marginLeft="0dp"
app:layout_constraintWidth_default="wrap"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="@+id/guideline29"
app:layout_constraintTop_toTopOf="@+id/guideline37"
app:layout_constraintRight_toLeftOf="@+id/guideline30"
app:layout_constraintHorizontal_bias="0.605"
app:layout_constraintVertical_bias="0.0"/>
編集#1:ガイドラインではなく、親によってTextViewの右側を制限する必要があると思います。つまり、app:layout_constraintRight_toLeftOf="@+id/guideline30"
をapp:layout_constraintRight_toRightOf="parent"
に変更します。その結果、次のことができます。
<TextView
Android:id="@+id/street_name"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_marginStart="15dp"
Android:text="street name"
Android:textColor="?AppTheme.InformationText"
Android:textSize="14sp"
Android:textStyle="bold"
Android:gravity="center"
Android:layout_marginTop="8dp"
Android:layout_marginRight="8dp"
Android:layout_marginBottom="19dp"
Android:layout_marginLeft="0dp"
app:layout_constraintWidth_default="wrap"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="@+id/guideline29"
app:layout_constraintTop_toTopOf="@+id/guideline37"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.605"
app:layout_constraintVertical_bias="0.0"/>
TextViewを右側に添付するだけで問題ありません。 constraintLayoutを使用して、別のビューまたは親にビューをアタッチする場合、4つの制約すべてを使用する必要があります。