如何在所有活动中保持操作栏固定?

时间:2013-04-05 14:17:24

标签: android android-actionbar android-ui

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

2 个答案:

答案 0 :(得分:4)

您需要一个活动和多个片段。

当您致电startActivity(intent);时,框架将滚动活动过渡动画及其所有内容(包括操作栏)

答案 1 :(得分: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);
    ...

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