【问题标题】:set typeface of text view to Typeface.NORMAL doesn't have any effect, why?将文本视图的字体设置为 Typeface.NORMAL 没有任何效果,为什么?
【发布时间】:2018-05-27 14:37:47
【问题描述】:

我有 ExpandableListView 的侦听器,用于折叠和展开组:

// There is a text view on group layout, no problem there.
    @Override
    public void onGroupCollapse(int groupPosition) {
        // this callback is triggered, however, once the textView is BOLD by onGroupExpanded, the textView is not set back to normal, seems this line of code does nothing...WHY?
        textView.setTypeface(textView.getTypeface(), Typeface.NORMAL);
    }

    @Override
    public void onGroupExpand(int groupPosition) {
        // it works fine
        textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
    }

如您在上面看到的,我在组布局中有一个textView,当组展开时,我bold textView,如果折叠,我尝试将其设置回unboldTypeface.NORMAL

两个回调都被正确触发,但是,一旦textViewonGroupExpanded(...) 回调BOLDtextView 在@ 时不会被设置回NORMAL之后触发 987654329@。似乎onGroupCollapsed(...)中的代码行什么都不做......为什么?

(再次,onGroupCollapse(...) 被触发。没问题!)

【问题讨论】:

  • 试试textView.setTypeface(null, Typeface.NORMAL);它看起来怎么样?
  • @donfuxx,在我进行了您建议的更改后,它现在可以工作了。但是您能否也解释一下为什么我的代码有这个问题?为什么使用 null 作为第一个参数可以解决问题?
  • 我试图在我的回答中解释 ;-) 我知道 setTypeface 方法不是很直观,并且不时让自己感到困惑:-P

标签: android expandablelistview android-typeface


【解决方案1】:

改用这个:

textView.setTypeface(null, Typeface.NORMAL);

您需要输入 null 以删除其他字体(在您的情况下为粗体)。我如何理解一个文本视图可以有多种字体,例如斜体+粗体等,第一个参数是指示您是否要保留这些字体。所以基本上你以前的代码保持 BOLD 并添加了 NORMAL,BOLD 赢了;-)

也可以在这里查看相关答案和 cmets https://stackoverflow.com/a/6200841/2399024

【讨论】:

  • 诚实...感谢参考。
  • 它会起作用,但会重置文本外观(字体系列等)
【解决方案2】:

如果你在这个 TextView 上使用android:fontFamily,那么我很确定

textView.setTypeface(null, Typeface.NORMAL);

将更改为默认字体。另一种方法是:

textView.setTypeface(Typeface.create(textView.getTypeface(), Typeface.NORMAL));

最初的问题是 TextView 的 setTypeface 如果样式为 NORMAL,则奇怪地跳过了一些内容。我已经在一个版本上对此进行了测试,并且可以正常工作。

【讨论】:

  • 是的,你是对的。这应该是公认的答案。
  • 在 ITALIC 或 BOLD 之后无法设置 NORMAL
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-31
  • 2011-05-05
  • 2014-06-12
  • 2012-06-01
  • 1970-01-01
  • 2014-08-05
  • 1970-01-01
相关资源
最近更新 更多