0

当我使用 openSession 方法启动登录/注册 Facebook 活动时,应用程序标题栏(我们正在使用自定义标题栏)消失并出现另一个标题栏。有没有办法为新活动设置自定义栏?

我调用 Facebook 授权的方式:

        fb.openSession(this, new Session.StatusCallback() {
        @Override
        public void call(Session session, SessionState state, Exception exception) {
            Logger.d(LOGTAG, "Session moved to state " + state.name());
            if (null == exception) {
                mFacebookSession = session;
                switch (state) {
                case CLOSED:
                case CLOSED_LOGIN_FAILED:
                    mLoginProgressDialog.dismiss();
                    Toast.makeText(FacebookLoginActivity.this, "Login failed. Verify login and password",
                            Toast.LENGTH_LONG).show();
                    break;
                case OPENED:
                case OPENED_TOKEN_UPDATED:
                    mFacebookSession.removeCallback(this);
                    FacebookServer.getInstance(getApplicationContext()).setSession(mFacebookSession);
                    FacebookServer.getInstance(getApplicationContext()).getUserFacebookId(
                            new FacebookLoginActivityUserIDCallback());
                    break;
                case OPENING:
                    break;
                default:
                    mLoginProgressDialog.dismiss();
                    break;
                }
            } else {
                exception.printStackTrace();
            }

        }
    });

我们在调用上述方法的Activity的onCreate()方法中设置自定义标题栏:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.facebook_login_activity);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.app_title_bar);

下图显示了问题所在:

自定义标题栏 启动FB授权后的简单标题栏

4

1 回答 1

0

最后,我只是将这些行添加到 Facebook 包中的 LoginActivity.java 中:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.app_title_bar);

它影响了 FB 在执行操作时正在启动的活动的布局,并且外观现在是一致的。

于 2013-01-22T12:25:29.287 回答