赞
踩
需要实现TextView 与 ImageView 在一行显示,并且 ImageView跟随在 TextView 后,如下效果:
代码:
`<TextView android:id="@+id/tv_text" app:layout_constraintStart_toStartOf="@+id/tv_title" app:layout_constraintEnd_toStartOf="@+id/iv_enable_credit_state" app:layout_constraintTop_toBottomOf="@+id/tv_title" android:layout_marginTop="20dp" android:text="¥100¥100¥100¥100¥100¥100¥100¥100¥100¥100" android:textSize="@dimen/app__fz_18" android:textColor="@color/text_price_yellow" app:layout_constraintHorizontal_chainStyle="packed" android:maxLines="1" android:ellipsize="end" app:layout_constrainedWidth="true" app:layout_constraintHorizontal_bias="0" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <ImageView android:id="@+id/iv_image" android:layout_marginStart="5dp" app:layout_constraintLeft_toRightOf="@+id/tv_available_credit_number" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="@+id/tv_available_credit_number" app:layout_constraintBottom_toBottomOf="@+id/tv_available_credit_number" android:src="@mipmap/icon_arrow_top" android:layout_width="wrap_content" android:layout_height="wrap_content" />`
关键属性:
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_bias="0"
首先设置左右约束,建立链,使其在横向宽度内完全展开。
设置TextView的宽度为wrap_content,表示子view自己决定自己的宽度。ImageView设置固定大小。
设置layout_constraintHorizontal_chainStyle属性,多个view 成链以后,只要设置第一个即可,设置为packed,表示为多个view紧密相邻,这样做的目的是为了ImageView可以紧密的跟在TextView后面
在TextView上设置这两个属性
layout_constraintHorizontal_bias 表示在水平方向左右所占的比例,当设置为0的时候,那就是靠最左边展示,0.5左右比一样,1表示在最右边
layout_constrainedWidth 官方解释 Enforcing constraints ,强制约束,表示当我view为wrap_content时,强制约束在夫控件内
经过以上几个属性组合,就可以实现最开始的目标了。
————————————————
版权声明:本文为CSDN博主「lgp10122」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lgp10122/article/details/111525496
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。