热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

textView动态更改为较短的文本而不是ellipsize

如何解决《textView动态更改为较短的文本而不是ellipsize》经验,有好办法吗?

我有这个代码:

  final ViewTreeObserver[] viewTreeObserver = {myAcco    
    viewTreeObserver[0].addOnPreDrawListener(
        new OnPreDrawListener() {
          @Override
          public boolean onPreDraw() {
            int chipWidth =
                myAccountView.getMeasuredWidth()
                    - myAccountView.getPaddingLeft()
                    - myAccountView.getPaddingRight();
            if (chipWidth > 0) {
              myAccountView.setText(
                  setChipTextWithCorrectLength(
                      getContext().getString(R.string.og_my_account_desc_long_length),
                      getContext().getString(R.string.og_my_account_desc_meduim_length),
                      getContext().getString(R.string.og_my_account_desc_short_length),
                      chipWidth));
              viewTreeObserver[0] = myAccountView.getViewTreeObserver();
              if (viewTreeObserver[0].isAlive()) {
                viewTreeObserver[0].removeOnPreDrawListener(this);
              }
            }
            return true;
          }
        });
  }

  @VisibleForTesting
  String setChipTextWithCorrectLength(
      String longDesc, String mediumDesc, String shortDesc, int clipWidth) {
    if (!isTextEllipsized(longDesc, clipWidth)) {
      return longDesc;
    }
    if (!isTextEllipsized(mediumDesc, clipWidth)) {
      return mediumDesc;
    }
    return shortDesc;
  }

  private boolean isTextEllipsized(String text, int clipWidth) {
    TextPaint textPaint = myAccountView.getPaint();

    Toast.makeText(this.getContext(), "textPaint.measureText(text) = "+textPaint.measureText(text)+" clipWidth ="+ clipWidth,
        Toast.LENGTH_LONG).show();


    return textPaint.measureText(text) > clipWidth;
  }

当需要ellipsize时,代码应动态更改textView中的文本.

然而,当我运行该应用程序我看到有时视图(剪辑)的宽度==长文本宽度和仍有ellipsize在UI中.

我看到当textView被not visible和toggeled 发生时会发生这种情况visible.

我应该以不同的方式计算vlip(视图)宽度吗?

之前测量textView的任何特殊方法都变成了visible


推荐阅读
  • 概述Android开发过程中,经常遇到Textview展示不完全的情况。遇到此情况,通常的处理是:方案一Textview添加android:ellipsize属性,让展示不 ... [详细]
  • scroll-在Android上使TextView可滚动我在textview中显示文本似乎太长而不适合进入一个屏幕。我需要让我的TextView可滚动。我能怎么做那? ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • TextView属性详解:autoLink设置  是否当文本为URL链接email电话号码map时,文本显示为可点击的链接。可选值(nonewebemailphonema ... [详细]
  • Android TextView利用measureText自适应文本字体大小宽度
    AndroidTextView利用measureText自适应文本字体大小宽度常常有这种情况,UI设计师限定一个文本TextView的宽度值比如80dip,但是该文本长度 ... [详细]
  • 如何在Android中利用TextView对字体颜色进行更改?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • 第五章:集合01
    第三章:集合01一:集合的框架结构图1.集合和数组的区别:2.Collection集合的方法:publicclassCol ... [详细]
author-avatar
lanxians
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有