应用标签字体未在方向更改时保留

时间:2013-02-14 22:29:48

标签: android android-actionbar actionbarsherlock

我无法在屏幕方向更改时保留应用程序标签的字体。目前我在SherlockFragmentActivity的onCreate方法中使用以下代码设置字体。

titleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
if(titleId == 0)
    titleId = com.actionbarsherlock.R.id.abs__action_bar_title; 
mAppName = (TextView) findViewById(titleId);
Typeface face = Typeface.createFromAsset(getAssets(), "fonts/handsean.ttf");
mAppName.setTypeface(face);

在方向更改时,字体将恢复为默认值。我尝试使用manifest.xml保存状态,但它没有帮助。它保留除标签字体以外的所有内容。有人可以建议如何做到这一点?

感谢您停下来阅读这篇文章。

2 个答案:

答案 0 :(得分:1)

您是否尝试过设置android:configChanges="orientation"并使用onConfigurationChanged()处理方向更改?

编辑:还解释了here为什么它无法运作。

答案 1 :(得分:0)

**Yes we can do this.

Override onConfigurationChanged
set the action bar title inside a handler with a delay of 200.**

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
                //your code to set the action bar title
                setActionBarTitle(title);
            }
        }, 200);
    }