外部父线性布局的宽度有限,还有三个孩子:
[child A][<- child b ->][child c]
对于孩子b,它有两个孩子
[<- child b ->]
[element 1][element 2]
希望孩子2由孩子1流动,如果没有足够的空间,那么孩子1应该显示省略号
[<- child b ->]
[element 1 xxx...][element 2]
尝试了以下布局,当孩子1太长时,它会占用所有空间并将孩子2推出视野。
[<- child b ->]
[element 1 xxxxxxxxxxxxxxxx...]
如果指定子1有
android:layout_width="0dp"
android:layout_weight="1"
如果孩子1的内容很短,那么孩子2就不会流过,而孩子2则会向右侧。
[<- child b ->]
[element 1] [element 2]
并且不想为子1提供硬编码的maxWidth。 有什么建议吗?
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight=“3dp”
android:ellipsize="end"
android:singleLine="true"
/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"/>
</LinearLayout>
答案 0 :(得分:0)
我能想到的最接近的事情,如果不是在代码中创建自定义ViewGroup或更改宽度。
使用wrap_content设置并将第一个TextView的maxWidth
设置为安全数字,这样它就不会推开第二个TextView。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="50dp"
android:layout_marginRight=“3dp”
android:ellipsize="end"
android:singleLine="true"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"/>
</LinearLayout>
答案 1 :(得分:0)
只是有一个类似的案例,并且这种布局有效。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:orientation="horizontal"
>
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginRight="8dp"
android:layout_alignParentLeft="true"
android:scaleType="centerCrop"
android:src="@drawable/content"
android:layout_gravity="center_vertical"
/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="left|center_vertical"
android:background="@color/white"
android:ellipsize="end"
android:gravity="left|center_vertical"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="@dimen/text_size"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_alignParentRight="true"
android:background="@color/white"
android:gravity="center_vertical"
android:textSize="@dimen/text_size"
android:text="Tap to change"
android:drawableRight="@drawable/icon_dropdown"
/>
</LinearLayout>