<!--昵称行--> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal"> <!--昵称--> <TextView android:id="@+id/nick_name_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:lines="1" android:maxLines="1" android:singleLine="true" android:textColor="@color/black_333333" android:textSize="19sp" /> <!--认证--> <TextView android:id="@+id/have_verify_tv" android:layout_width="45dp" android:layout_height="15dp" android:layout_marginStart="10dp" android:background="@drawable/shape_verify_text_back" android:gravity="center" android:text="@string/have_verify" android:textColor="@color/red_fe2947" android:textSize="11sp" android:visibility="gone" tools:ignore="SmallSp" /> <!--性别 年龄--> <LinearLayout android:id="@+id/sex_age_ll" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="10dp" android:background="@drawable/shape_blue_back" android:gravity="center_vertical" android:orientation="horizontal" android:paddingStart="6dp" android:paddingTop="2dp" android:paddingEnd="6dp" android:paddingBottom="2dp" android:visibility="gone"> <ImageView android:id="@+id/sex_iv" android:layout_width="10dp" android:layout_height="10dp" android:contentDescription="@null" android:scaleType="centerInside" /> <TextView android:id="@+id/age_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="3dp" android:textColor="@color/white" android:textSize="12sp" android:visibility="gone" tools:ignore="SmallSp" /> </LinearLayout> <!--vip--> <ImageView android:id="@+id/vip_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="10dp" android:background="@drawable/selector_vip_image" android:contentDescription="@null" android:visibility="gone" /> <!--工会--> <ImageView android:id="@+id/company_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:background="@drawable/icon_company" android:contentDescription="@null" android:visibility="gone" /> <View android:id="@+id/view" android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="1" /> <ImageView android:id="@+id/system_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:contentDescription="@null" android:padding="5dp" android:src="@drawable/system_message" /> </LinearLayout>
关键在 @+id/view 这个view上,view是用来填充空间不足用的,判断剩余空间。先是
mNickNameTv.setText(content);
填充昵称的内容,之后进行判断
if (mContext.findViewById(R.id.view).getWidth() < 10) { LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, 2); mNickNameTv.setLayoutParams(lp); mNickNameTv.setEllipsize(TextUtils.TruncateAt.END); }
如果填充空间的宽度小于10时,把昵称view的宽度改为weight为2,并后面省略即可。