Android 如何在文本视图中显示文本末尾的3个点
我知道这个问题被问了很多次,我已经讨论了所有的解决方案,但问题仍然是一样的 我希望我的文本长度为50个字符。现在有两行 以下是我所做的:Android 如何在文本视图中显示文本末尾的3个点,android,textview,Android,Textview,我知道这个问题被问了很多次,我已经讨论了所有的解决方案,但问题仍然是一样的 我希望我的文本长度为50个字符。现在有两行 以下是我所做的: <TextView android:id="@+id/notification_Message" android:layout_width="wrap_content" android:layout_height="wrap_content" android
<TextView
android:id="@+id/notification_Message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/notification_head"
android:layout_centerHorizontal="true"
android:layout_margin="10dp"
android:gravity="center"
android:ellipsize="end"
android:maxLength="50"
android:text=" Hello developer. please check this message for long length. max length to 50 characters. "
android:textSize="20sp" />
这里的文本只是我添加的示例文本。它不是在结尾显示3个点,而是最多显示50个字符的信息。我还尝试了最大行数,单行错误。但没有积极的结果。
我也不想通过逻辑地添加三个点来以编程方式处理这件事
请帮助使用singleLine=“true”
用于按单行限制文本
<TextView
android:id="@+id/txt__customizer_item"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:gravity="center"
android:paddingRight="20dp"
android:singleLine="true"
android:text=" Hello developer. please check this message for long length. max length to 50 characters. "
android:textAppearance="@android:style/TextAppearance.Medium"
android:textColor="@color/light_blue"
android:textSize="20sp" />
这对我有效。从右侧填充。它将自动显示…
android:ellipsize
仅适用于:
android:singleLine="true"
或
因为maxLength会截断文本
因此,如果您只想显示50个字符+点,或者让文本视图显示两行,则必须使用代码管理标签
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
android:scrollHorizontally="true"
android:text="Hello developer. please check this message for long length. max length to 50 characters."
android:textSize="20sp" />
为文本视图预设宽度并添加这些属性(向@T-D大声呼喊) 最大线将确保文本不会显示为两行,省略号将在末尾添加三个点 旧答案
创建自定义文本视图:
<com.xyz.CustomizedTextViewName
android:id="@+id/app_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:ellipsize="end"
android:singleLine="true"
android:maxEms="10"
app:typeface="roboto_bold"/>
用于带点的单行文本,但现在它已被弃用,因此不再使用
单行
多亏了这篇文章,我发现如果我们有更多的一行,如何在文本结尾后显示点,这对我来说很有用:)
在这里发布这个答案,因为这里所有的答案都是针对单行的,而不是针对多行的我也在努力解决这个问题
android:maxLength
没有任何效果,所以我玩了android:maxWidth
,效果很好
在下面签出我的代码片段
<TextView
android:id="@+id/tv_comment_author"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="120dp"
android:singleLine="true"
android:ellipsize="end"
android:text="@string/dummy_text"/>
采用@Lokesh的方法效果很好
android:ellipsize="end"
android:maxLines="2"
但我意识到一个问题,TextView将被word截断(默认情况下)。显示我们是否有如下文本:
在没有任何空间的情况下测试长线
文本视图将显示:
测试…
我找到了解决这个问题的方法,用unicode无中断空格字符替换空格,它使TextView以字符而不是文字换行:
yourString.replace(" ", "\u00A0");
结果是:
在没有任何空间的情况下测试长线…这是您想要的答案:
<TextView
android:id="@+id/tv_title"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="wrap_content"
android:text="Title"
android:maxLines="1"
android:ellipsize="end"
android:maxWidth="195dp"
android:textColor="@color/white"
android:textSize="14dp"
android:gravity="center"
/>
android:singleLine=“true”已被弃用 更好地利用
android:maxLines=“1”
android:ellipsize="end"
android:singleLine="true"
和
android:ellipsize=“end”
要在文本末尾添加“…”,您可以通过xml
实现:
<TextView
android:id="@+id/textview"
android:maxLines="1" // or any number of lines you want
android:ellipsize="end" />
如果singleLine=“true”
在xml中被删除,您仍然希望使用单行行为,然后使用tv.setSingleLine(true)代码>代码中的方法。50个字符不能用单行表示问题是…singleLine已被弃用,但当我不久前尝试使用singleLine=true时,我找不到一种方法使ellipsize在不使用singleLine=true的情况下工作。如果您需要精确显示50个字符,你应该在最后加上3个点,并通过代码将限制改为53。你可以定期阅读,我可以发誓我在文档中读到了,但这里不再说明。这是以前的文字:@PankajKumar Right,应该先检查文档。但是你知道关于singleLine
被弃用的谣言是从哪里来的吗?另外,据我记忆所及,它在IDE中被标记为不推荐使用。亲爱的,问题是一行不能包含50个字符。那么,我们如何将单行设置为true呢?那么,您必须使用两行。如果我希望最大字符数为50Recap,该怎么办:-文本视图必须独立显示50个字符,屏幕为纵向或横向。-无论文本是2行还是3行-如果文本长度超过50个字符,则必须显示点-如果使用省略号最大长度剪切点,我看到的唯一方式是:String toCut=“你好,开发者。请检查此消息的长度。最大长度为50个字符。”;如果(toCut.length()>50){toCut=toCut.substring(0,50)+'…';}textView.setText(toCut)代码>我知道这是可以做到的。但稍后我需要从这个文本视图中获取文本。然后,它会为ME创建一个混乱,你可以用StTAG(整篇文本)和稍后的GETAG()来存储整个文本,它不会在我的用例中滚动,如何在没有空白的VyyLang-In单词中间填充椭圆大小。它似乎在空白处而不是myVeryLongWord处中断…android:singleLine=“true”
现在已被弃用。改用android:maxLines=“1”
。我发现在android 4.4.2中,它只显示一个点。这是正常的还是什么
yourString.replace(" ", "\u00A0");
<TextView
android:id="@+id/tv_title"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="wrap_content"
android:text="Title"
android:maxLines="1"
android:ellipsize="end"
android:maxWidth="195dp"
android:textColor="@color/white"
android:textSize="14dp"
android:gravity="center"
/>
<TextView
android:id="@+id/textview"
android:maxLines="1" // or any number of lines you want
android:ellipsize="end" />