2

在 Facebook 应用程序 v2.3 中,当您从一个活动(或片段?)导航到另一个活动时,操作栏在所有活动(或片段?)中保持固定。例如,如果您从新闻提要导航到某人的个人资料页面,则操作栏保持不变,并刷新下面的页面。所以我的问题是,是否有可能只使用活动来实现这种行为?还是我应该只有一项主要活动,以及所有子活动的片段?

4

2 回答 2

4

一项活动和您需要的尽可能多的片段。

您调用框架的那一刻startActivity(intent);将滚动活动过渡动画及其所有内容(包括操作栏)

于 2013-04-05T14:20:45.423 回答
2

您可以仅使用活动来实现此行为。这些是您在每个活动中需要的方法。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_activity, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.button_1:
            handleButton1();
            return true;
        case android.R.id.button_2:
            handleButton2();
            return true;
           ...
        default:
           ...
    }
}

此外,您可以在 onCreate 中访问操作栏对象,并以您想要的方式对其进行自定义。例如,启用主页按钮等:

ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
    ...

但是,如果您有很多活动,您可能不想在每个活动中都这样做。相反,您可以将此代码放在超类活动中,然后让其他活动扩展它。这是首选方式 - 您只能在一个地方执行此操作。

于 2013-04-05T15:10:08.753 回答