layout_constraintWidth_default =“ wrap”是否已弃用?

时间:2019-06-12 14:59:56

标签: android android-constraintlayout

我在textview的imageview的右边使用了这个layout_constraintWidth_default =“ wrap”来保持textview的内容被包裹,并且随着textview中文本的增长,textview的区域变大,这将imageview移到了textview的右边。 >

layout_constraintWidth_default="wrap"

因为它已被替代?

Logcat

enter image description here

4 个答案:

答案 0 :(得分:3)

Android开发者在文档中link中所述:

  

在1.1之前的版本中,它们将被视为字面量纲-意味着约束不会限制结果量纲。通常,这足够了(并且更快),但在某些情况下,您可能想使用WRAP_CONTENT,但仍要强制执行约束以限制结果尺寸。在这种情况下,您可以添加相应的属性之一:

app:layout_constrainedWidth="true|false"

因此,请使用layout_constrainedWidth="true"代替layout_constraintWidth_default="wrap"

答案 1 :(得分:2)

您可以尝试以下方法:

android:layout_width="wrap_content"
app:layout_constrainedWidth="true"

宽度不能为“ 0dp”

答案 2 :(得分:0)

如果维度设置为 WRAP_CONTENT ,则在版本 1.1之前的版本中,它们将被视为文字维度,意味着约束不会限制结果尺寸。

  

通常要求视图的宽度或高度保持不变   内容,而不是匹配约束或匹配父项,但不幸的是   包装内容会覆盖应用的约束并与   宽度或高度变化时的约束。对于版本1.1.0,此问题   通过使用

解决
app:layout_constrainedWidth="true"  OR  app:layout_constrainedHeight="true"

仅供参考

您可以将 percentage 用于宽度和高度,尺寸应为 match constraint(0dp) app:layout_constraintWidth_default="percent" >或 app:layout_constraintHeight_default="percent" 需要设置为百分比。

示例

<TextView
    android:id="@+id/txtView"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="Hello Width In Percentage"
    app:layout_constraintWidth_default="percent"
    app:layout_constraintWidth_percent="0.5"
    app:layout_constraintLeft_toLeftOf="parent" />

GRADLE

 implementation 'androidx.constraintlayout:constraintlayout:1.1.3' // For androidx
 implementation 'com.android.support.constraint:constraint-layout:1.1.3'

答案 3 :(得分:0)

以下是我为解决方案所做的更改,imageview不会超出可见屏幕区域:

android:layout_width="wrap_content"
app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintHorizontal_chainStyle="packed"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Text asdasdasdasdasdasdasdasdasdadsasdasdasdasdasdasdasd"
            app:layout_constrainedWidth="true"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@+id/image"
            app:layout_constraintHorizontal_bias="0"
            app:layout_constraintHorizontal_chainStyle="packed"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/ic_launcher"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/text"
            app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>