微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

操作栏中的标题文字颜色未更改

如何解决操作栏中的标题文字颜色未更改

我需要在一个片段中更改操作栏标题文本的颜色。

我在活动中包括以下方法

public void setActionBarTitle(String title) {
        getSupportActionBar().setTitle(title);
        Log.d("action bar id","action bar id title previo: "+title);
    }
    public void setActionBarTitleTextColor(String color) {

        int actionBarTitleId = Resources.getSystem().getIdentifier("action_bar_title","id","android");
        Log.d("action bar id","action bar id "+actionBarTitleId);
        if (actionBarTitleId > 0) {
            TextView title = (TextView) findViewById(actionBarTitleId);
            Log.d("action bar id","action bar id title: "+title);
            if (title != null) {
                title.setTextColor(Color.parseColor(color));
            }
        }

    }

我可以获得int actionBarTitleId的值,在这种情况下为:

D/action bar id: action bar id 16908676

但是在方法setActionBarTitleTextColor中,TextView标题中的文本始终被识别为null:

D/action bar id: action bar id title: null

这就是我从片段expl_especialidad_color_texto = #008080

调用方法的方式
((MainActivity) getActivity())
                .setActionBarTitleTextColor(expl_especialidad_color_texto);

解决方法

我对方法setActionBarTitleTextColor()使用以下解决方法解决了该问题:

public void setActionBarTitleTextColor(String color,String title) {

    getSupportActionBar().setTitle(HtmlCompat.fromHtml("<font color='"+color+"'>"+title+"</font>",HtmlCompat.FROM_HTML_MODE_LEGACY));


}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。