android textview 使用SpannableString时ellipsize属性不起作用
作者:夏青
链接:https://www.zhihu.com/question/52436308/answer/130588361
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。public class EllipsizeTextView extends TextView {public EllipsizeTextView(Context context) {super(context);}public EllipsizeTextView(Context context, AttributeSet attrs) {super(context, attrs);}public EllipsizeTextView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onDetachedFromWindow() {super.onDetachedFromWindow();}public EllipsizeTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {super(context, attrs, defStyleAttr, defStyleRes);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {StaticLayout layout = null;Field field = null;try {Field staticField = DynamicLayout.class.getDeclaredField("sStaticLayout");staticField.setAccessible(true);layout = (StaticLayout) staticField.get(DynamicLayout.class);} catch (NoSuchFieldException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}if (layout != null) {try {field = StaticLayout.class.getDeclaredField("mMaximumVisibleLineCount");field.setAccessible(true);field.setInt(layout, getMaxLines());} catch (NoSuchFieldException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}}super.onMeasure(widthMeasureSpec, heightMeasureSpec);if (layout != null && field != null) {try {field.setInt(layout, Integer.MAX_VALUE);} catch (IllegalAccessException e) {e.printStackTrace();}}}
}
已验证有效。
转载自: https://www.zhihu.com/question/52436308/answer/130588361
android textview 使用SpannableString时ellipsize属性不起作用相关推荐
- 关于TextView的maxLines和ellipsize属性显示不正确情况之一的解决
前言:关于TextView的maxLines和ellipsize属性显示不正确网上有好几种情况,我这里只针对自己遇到的一种情况讨论. 下面主要说以下自己的问题即解决: 图片效果: 布局代码: < ...
- android span字体修改,Android TextView使用SpannableString设置复合文本的方法详解
本文实例讲述了Android TextView使用SpannableString设置复合文本的方法.分享给大家供大家参考,具体如下: TextView通常用来显示普通文本,但是有时候需要对其中某些文本 ...
- Android TextView跑马灯不动 及属性
<TextView android:text="每一个视图的绘制过程都必须经历三个最主要的阶段,即onMeasure().onLayout()和onDraw(),"andro ...
- Android TextView通过SpannableString设置字体、大小、颜色、样式、超级链接
代码应该都能看明白 public class MainActivity extends ActionBarActivity {private TextView tv, tv2;private Span ...
- Android TextView文字横向自动滚动(跑马灯)
TextView实现文字滚动需要以下几个要点: 1.文字长度长于可显示范围:android:singleLine="true" 2.设置可滚到,或显示样式:android:elli ...
- android ellipsize 多行,android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法...
android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法 布局文件中的TextView属性 复制代码 代码如下: android:id="@+id/b ...
- Android中TextView:的ellipsize属性
在TextView中,当文字长度超出TextView中显示宽度时,我们可以使用TextView中的ellipsize属性. 如: android:ellipsize="start" ...
- Android - TextView Ellipsize属性
Android - TextView Ellipsize属性 本文地址: http://blog.csdn.net/caroline_wendy 本文的合集已经编著成书,<高级Android开发 ...
- android ellipsize 多行,详解Android TextView属性ellipsize多行失效的解决思路
本文介绍了Android TextView属性ellipsize多行失效的解决思路,分享给大家,具体如下: 多余文字显示省略号的常规做法 android:ellipsize="end&quo ...
最新文章
- echarts datazoom 显示的位置设置
- 数据结构与算法 / 数组(Array)
- VTK:直线网格之RectilinearGridToTetr​​ahedra
- 总结缓存使用过程中的几种策略以及优缺点组合分析
- @Transactional事务不生效问题解决(springboot)
- Internal Error 2738 - Installing ArcGIS Server 9.3,10 for Java
- 因遭做空机构指控存在金融欺诈 法拉第未来聘请律所展开调查
- 可扩展的Web架构和分布式系统
- UVa 11044 - Searching for Nessy
- 计算机考试题库电子版,全国计算机等级考试一级试题库大全完整版附参考答案...
- deebot扫地机器人响四声_中国智能扫地机器人重点制造基地企业名录(2020年版)...
- 使用ApplicationContext类来完全封装闪屏功能
- 邮箱管理系统 -- 【课程设计】 idea; MVC; mysql;jsp
- 接口测试用例设计及模板
- 优秀新媒体文案的4种必备能力
- Ubuntu 22.04 桌面美化之Mac Big Sur风格
- 上机练习(2019.11.19)
- 用UDP实现简易的聊天室
- 程序员带你一步步分析AI如何玩Flappy Bird
- Installation failed due to: ‘-99‘ OPPO手机