在Facebook应用程序v2.3中,当您从一个活动(或frgament?)导航到另一个活动时,操作栏在所有活动(或片段?)中保持固定。例如,如果您从新闻Feed导航到某人的个人资料页面,则操作栏保持不变,并刷新下面的页面。所以我的问题是,是否可以仅使用活动进行此行为?或者我应该只有一个主要活动,以及所有子活动的片段?
答案 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);
...
但是,如果你有很多活动,你可能不希望在每个活动中都这样做。相反,您可以将此代码放在超类活动中,然后让其他活动扩展它。这是首选方式 - 您只在一个地方进行。