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

问题描述

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

我在活动中包括以下方法

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));


}