我有一个TextView,它位于屏幕的左侧,并设置为gravity =" right"并使用SingleLine设置=" true。"
如果有可能这个视图中的文字太长,我希望它只是从视图的左侧消失。我认为下面的配置可以做到这一点,但实际发生的是长字符串完全消失,可能是在视图之外的某个地方。
如何创建一个包含单行文本的简单文本视图,并在发生意外情况时保持其布局? ......甚至是可预测的东西。
<TextView
android:id="@+id/tempF"
android:text="@string/tempF"
android:layout_width="146dp"
android:layout_height="wrap_content"
android:textColor="#cccccc"
android:textStyle="bold"
android:textSize="92dp"
android:fontFamily="serif"
android:gravity="right"
android:layout_marginTop="60dp"
android:layout_gravity="top|left"
android:singleLine="true"
/>
答案 0 :(得分:34)
这是“ellipsize”的目的 - 截断一部分文本以指示其他文本。
在您的情况下,您可能只需添加以下内容:
android:ellipsize="end"
或者您可能需要深入了解:
Automatically ellipsize a string in Java
或者看看这个:
android ellipsize multiline textview
扩展类的想法是,当文本内容超出提供的空间时,您可以自定义TextView的行为。例如,你可以通过删除填充等给它外观“渗透”。省略号是一个指示器,通常用于解释“有更多你看不到的文字” - 这就是它的外观:
这真的很长......
(3个时期是省略号 - 你的文字方向相反,但它应该仍然有效)
使用自定义TextView,您可以将“...”更改为任何内容或您想要的任何其他内容(即使是我已完成的图像)。
您还可以选中文字:
答案 1 :(得分:8)
在xml中添加2个属性
android:singleLine="true"
android:ellipsize="end"
答案 2 :(得分:7)
你应该使用下面TextView.Check的ellipsize属性:
<TextView
android:id="@+id/tempF"
android:text="@string/tempF"
android:layout_width="146dp"
android:layout_height="wrap_content"
android:textColor="#cccccc"
android:textStyle="bold"
android:textSize="92dp"
android:fontFamily="serif"
android:gravity="right"
android:layout_marginTop="60dp"
android:layout_gravity="top|left"
android:singleLine="true"
android:ellipsize="end"
/>
答案 3 :(得分:0)
<TextView
android:id="@+id/tv_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorGray"
android:textSize="@dimen/_18dp"
android:padding="@dimen/_2dp"
android:singleLine="true"
android:ellipsize="end"
android:text="@string/desc"/>
答案 4 :(得分:0)
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#000000" />
有效。
答案 5 :(得分:0)
自v$resource_limit
起已弃用。我们可以使用此行android:singleLine
可以这样做。
android:maxLines