android - ConstraintLayout: Realign baseline constraint in case if dependent view visibility was set to GONE -
is there way realign baseline constraint textview in case if dependent view visibility set gone?
my layout code:
<android.support.constraint.constraintlayout android:layout_width="match_parent" android:layout_height="wrap_content"> <textview android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="test title" android:textcolor="@color/black" android:textsize="24sp" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_torightof="parent"/> <textview android:id="@+id/subtitle1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="subtitle 1" android:textsize="11sp" app:layout_constraintbaseline_tobaselineof="@+id/subtitle2" app:layout_constrainthorizontal_chainstyle="packed" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_toleftof="@+id/subtitlespace" app:layout_constraintright_torightof="parent"/> <android.support.v4.widget.space android:id="@+id/subtitlespace" android:layout_width="12dp" android:layout_height="wrap_content" app:layout_constraintleft_torightof="@+id/subtitle1" app:layout_constraintright_toleftof="@+id/subtitle2"/> <textview android:id="@+id/subtitle2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margintop="4dp" android:text="subtitle 2" android:textsize="14sp" app:layout_constraintleft_torightof="@+id/subtitlespace" app:layout_constraintright_torightof="parent" app:layout_constrainttop_tobottomof="@+id/title"/> </android.support.constraint.constraintlayout>
when i'm setting subtitle2
textview visibility gone
layout this:
so i'm wondering if there constraint can realign baseline in case if dependent view missing.
alternate margins can specified gone
widgets (see margins when connected gone widget), not aware of such alternative baselines.
one way satisfy requirement specify 0dp
invisible textview
has same characterisics of gone
textview
placed next same view. subtitle1
, subtitle2
tie baseline of new textview
. though new textview
doesn't show on screen , takes 0 width, still maintains baseline.
now, when subtitle2
made gone
, subtitle1
move center maintain vertical position. (specifying 0dp
, invisible
null text redundant makes clear widget should not appear.)
here xml these changes:
<android.support.constraint.constraintlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content"> <textview android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="test title" android:textcolor="#ff000000" android:textsize="24sp" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_torightof="parent" /> <textview android:id="@+id/subtitle1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="subtitle 1" android:textsize="11sp" app:layout_constraintbaseline_tobaselineof="@+id/viewforbaseline" app:layout_constrainthorizontal_chainstyle="packed" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_toleftof="@+id/subtitlespace" app:layout_constraintright_torightof="parent" /> <android.support.v4.widget.space android:id="@+id/subtitlespace" android:layout_width="12dp" android:layout_height="wrap_content" app:layout_constraintleft_torightof="@+id/subtitle1" app:layout_constraintright_toleftof="@+id/subtitle2" /> <textview android:id="@+id/subtitle2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margintop="4dp" android:text="subtitle 2" android:textsize="14sp" android:visibility="gone" app:layout_constraintbaseline_tobaselineof="@+id/viewforbaseline" app:layout_constraintleft_torightof="@+id/subtitlespace" app:layout_constraintright_torightof="parent" app:layout_constrainttop_tobottomof="@+id/title" /> <textview android:id="@+id/viewforbaseline" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margintop="4dp" android:textsize="14sp" android:visibility="invisible" app:layout_constraintright_torightof="parent" app:layout_constrainttop_tobottomof="@+id/title" /> </android.support.constraint.constraintlayout>
Comments
Post a Comment