查看布局的一部分:
<LinearLayout
android:orientation="horizontal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:gravity="center_vertical|right"
android:layout_weight="1">
<TextView
android:id="@+id/second_team_code"
android:layout_marginRight="6dp"
style="@style/TextView.TeamCode"/>
<ImageView
android:id="@+id/second_team_flag"
android:layout_marginRight="1dp"
style="@style/FlagImageView"/>
</LinearLayout>
由于某种原因,当小尺寸的封闭视图导致文本溢出时,不会通过添加&#34; ...&#34;来缩短文本,但文本的开头会被截断。交换TextView和ImageView - 根据需要缩短文本的缩写。
为什么会这样?以及如何解决这个问题?
风格:
<style name="TextView.TeamCode">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:singleLine">true</item>
<item name="android:ellipsize">end</item>
</style>
答案 0 :(得分:3)
LinearLayout
并不能很好地处理这种情况......我的意思是,如果你有第一个这样的孩子(wrap_content
),你希望它在达到{{{{{{{ 1}}。不幸的是,它将以width = {parent_width}-{next_child_width}
停止。
因此,如果文本会更大,则视图的左边界将移动到其父级之外(向左,但保持向右)绑定到位)并且文本的开头将被剪切(因为视图被部分地绘制在父母左边界外)。如果文本也不适合父宽度 - 文本也将从右侧剪切,但这次使用ellipsize(...)
您可以在此处查看结果:
尝试类似的东西:
{parent_width}
通过应用重量 <TextView
android:id="@+id/second_team_code"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:ellipsize="end"
android:layout_marginRight="6dp"
android:text="Super long text"/>
将占用所有剩余空间(具有固定宽度)并且不会被推到外面因为文本不适合内部。为了保持正确的对齐方式,您还可以添加:
TextView
答案 1 :(得分:0)
android:singleLine =“true”已过时。
而不是
android:singleLine="true" android:ellipsize="end"
你必须使用
android:gravity="right"
android:inputType="text"