无法动态切换TextView样式

时间:2016-10-31 08:38:08

标签: android textview android-styles android-typeface

在我的项目中,我需要将TextView样式切换为NormalBold。这是代码:

mTitleTextView.setTypeface(mTitleTextView.getTypeface(), letterItem.isRead() ? Typeface.NORMAL : Typeface.BOLD);

TextView不是粗体时,这很有效。但是当前状态为粗体时,它不会恢复正常状态。

mTitleTextView.setTypeface(null, letterItem.isRead() ? Typeface.NORMAL : Typeface.BOLD);

上面的行修复了问题,但是我使用了自定义字体并为当前字体传递null会删除字体。

1 个答案:

答案 0 :(得分:1)

在打了一段时间后,这对我有用:

textView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        textView.invalidate();
        if(isCliked){
            isCliked = false;
            Typeface face=Typeface.createFromAsset(getAssets(), "test.ttf");
            textView.setTypeface(face,Typeface.NORMAL);
        }
        else{
            Typeface face=Typeface.createFromAsset(getAssets(), "test.ttf");
            textView.setTypeface(face, Typeface.BOLD);
            isCliked = true;
        }
        Log.i("MainActivity", "onClick: "+isCliked);
    }
});

字体将保持不变,并且仅更改粗体和正常