遇到的一個(gè)問(wèn)題:
同一行的兩個(gè)Textview,要實(shí)現(xiàn)兩個(gè)View連著,前一個(gè)view的內(nèi)容長(zhǎng)度不確定,過(guò)長(zhǎng)的時(shí)候會(huì)導(dǎo)致第二個(gè)view被擠出屏幕外,使用LinearLayout也會(huì)出現(xiàn)這種情況。
這里提供一個(gè)解決方案:
借助于輔助線(xiàn),和
app:layout_constrainedHeight表示是否約束height,相應(yīng)的也有app:layout_constrainedWidth
app:layout_constraintVertical_bias表示作用于鏈頭第一個(gè)子控件,通過(guò)設(shè)置值0~1控制頭尾間距比例(偏移比例)
這里貼上一個(gè)拖拽UI的界面圖。

垂直方向,借助于3條垂直輔助線(xiàn)。從左至右,后續(xù)依次稱(chēng)為,guideline1,guideline2, guideline3。兩個(gè)textview依次稱(chēng)為t1,t2。
要實(shí)現(xiàn)t2緊跟t1,則t2左側(cè)的依賴(lài)關(guān)系就要依賴(lài)于t1的右側(cè),當(dāng)文字內(nèi)容較短的時(shí)候,t2可以實(shí)現(xiàn)緊跟t1。
但當(dāng)t1文字內(nèi)容過(guò)長(zhǎng),就會(huì)把t2頂出屏幕外。
但是這個(gè)時(shí)候t2是緊貼屏幕右側(cè)的
往往我們都需要t2右側(cè)有一定的間距

如上圖,t2與第二條輔助線(xiàn)右側(cè)建立關(guān)系。此時(shí)不存在guideline2,這事就會(huì)出現(xiàn)t1過(guò)長(zhǎng)直接把t2擠出去的情況。
因?yàn)閠2的左側(cè)已經(jīng)和t1的右側(cè)建立了關(guān)系,這個(gè)時(shí)候t1的右側(cè)已經(jīng)不能再與t2的左側(cè)建立關(guān)系。這時(shí),我們添加一條輔助線(xiàn)guideline2。
讓t1的右側(cè)與guideline2建立關(guān)系。但是這個(gè)時(shí)候,當(dāng)t1文字過(guò)長(zhǎng)的時(shí)候,不會(huì)再將t2擠出屏幕外了,但是會(huì)覆蓋住t2。
這個(gè)時(shí)候給t1 加入app:layout_constrainedWidth=true,這個(gè)屬性,可以防止t2被覆蓋。
但是還有一個(gè)問(wèn)題,t1上下左右全部加入了依賴(lài)關(guān)系,當(dāng)文字內(nèi)容過(guò)短的時(shí)候,文字出現(xiàn)了居中的現(xiàn)象,這顯然不是我們想要的效果。
這時(shí)候,就需要引入app:layout_constraintHorizontal_bias="0.0",讓t1居左顯示(1.0是居右顯示)
最后附上代碼(雖說(shuō)是界面化操作,但是有的時(shí)候界面和代碼同時(shí)使用能更好的解決問(wèn)題):
<?xml?version="1.0"?encoding="utf-8"?>
<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/nim_pop_notice_layout"
? ?android:layout_width="match_parent"
? ?android:layout_height="wrap_content">
? ? ? ?android:id="@+id/guideline21"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?android:orientation="vertical"
? ? ? ?app:layout_constraintGuide_end="88dp"?/>
? ? ? ?android:id="@+id/guideline3"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?android:orientation="vertical"
? ? ? ?app:layout_constraintGuide_end="37dp"?/>
? ? ? ?android:id="@+id/guideline2"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?android:orientation="vertical"
? ? ? ?app:layout_constraintGuide_begin="37dp"?/>
? ? ? ?android:id="@+id/guideline4"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?android:orientation="horizontal"
? ? ? ?app:layout_constraintGuide_begin="52dp"?/>
? ? ? ?android:id="@+id/vx_content"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?android:ellipsize="end"
? ? ? ?android:gravity="center_vertical"
? ? ? ?android:includeFontPadding="false"
? ? ? ?android:maxLines="1"
? ? ? ?android:text="@string/vx_content"
? ? ? ?android:textColor="@color/black_333333"
? ? ? ?android:textSize="@dimen/common_title_size16"
? ? ? ?app:layout_constrainedWidth="true"
? ? ? ?app:layout_constraintBottom_toTopOf="@+id/guideline5"
? ? ? ?app:layout_constraintEnd_toStartOf="@+id/guideline21"
? ? ? ?app:layout_constraintHorizontal_bias="0.0"
? ? ? ?app:layout_constraintStart_toStartOf="@+id/guideline2"
? ? ? ?app:layout_constraintTop_toTopOf="@+id/guideline4"?/>
? ? ? ?android:id="@+id/vx_change"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?android:layout_gravity="center_vertical"
? ? ? ?android:layout_marginStart="26dp"
? ? ? ?android:includeFontPadding="false"
? ? ? ?android:singleLine="true"
? ? ? ?android:text="@string/vx_change"
? ? ? ?android:textColor="@color/color_2d7eff"
? ? ? ?android:textSize="@dimen/common_title_size12"
? ? ? ?app:layout_constraintHorizontal_bias="0.0"
? ? ? ?app:layout_constraintBottom_toTopOf="@+id/guideline5"
? ? ? ?app:layout_constraintEnd_toStartOf="@+id/guideline3"
? ? ? ?app:layout_constraintStart_toEndOf="@+id/vx_content"
? ? ? ?app:layout_constraintTop_toTopOf="@+id/guideline4"?/>
? ? ? ?android:id="@+id/guideline5"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?android:orientation="horizontal"
? ? ? ?app:layout_constraintGuide_begin="74dp"?/>
? ? ? ?android:id="@+id/seven_iv"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?android:contentDescription="TODO"
? ? ? ?android:paddingTop="@dimen/common_size_5"
? ? ? ?android:paddingBottom="@dimen/common_size_5"
? ? ? ?android:src="@drawable/nochoice_squareicon"
? ? ? ?app:layout_constraintStart_toStartOf="@+id/guideline2"
? ? ? ?app:layout_constraintTop_toTopOf="@+id/guideline7"?/>
? ? ? ?android:id="@+id/seven_tv"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?android:includeFontPadding="false"
? ? ? ?android:paddingStart="8dp"
? ? ? ?android:paddingTop="@dimen/common_size_5"
? ? ? ?android:paddingBottom="@dimen/common_size_5"
? ? ? ?android:text="@string/seven_day_not_notice"
? ? ? ?android:textColor="@color/grey_999999"
? ? ? ?android:textSize="12sp"
? ? ? ?app:layout_constraintStart_toEndOf="@+id/seven_iv"
? ? ? ?app:layout_constraintTop_toTopOf="@+id/guideline7"?/>
? ? ? ?android:id="@+id/group"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?app:constraint_referenced_ids="seven_tv,seven_iv"?/>
? ? ? ?android:id="@+id/guideline7"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?android:orientation="horizontal"
? ? ? ?app:layout_constraintGuide_begin="97dp"?/>
? ? ? ?android:id="@+id/guideline15"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?android:orientation="horizontal"
? ? ? ?app:layout_constraintGuide_begin="113dp"?/>
? ? ? ?android:id="@+id/guideline16"
? ? ? ?android:layout_width="wrap_content"
? ? ? ?android:layout_height="wrap_content"
? ? ? ?android:orientation="horizontal"
? ? ? ?app:layout_constraintGuide_begin="136dp"?/>
</android.support.constraint.ConstraintLayout>