我刚刚开始开发Android应用,根本没有经验。我已经阅读了很多关于活动/片段/小部件的内容,但似乎没有找到我的问题的明确答案:
我可以将应用程序的操作栏创建为片段,因此每当我更改活动时,我只会调用一个操作栏(即一个片段)?我打算开发一个动态UI来为个人选项创建片段,并认为在所有页面上都可以很容易地显示一个通用的操作栏。
答案 0 :(得分:2)
如果要在所有活动中自定义ActionBar,第一步是使用XML创建自定义主题。
在这个主题中,您可以自定义几乎所有内容
请参阅此优秀博文:http://android-developers.blogspot.be/2011/04/customizing-action-bar.html
为ActionBar使用片段会很疯狂!
如果要在所有活动中以编程方式添加一些代码,只需扩展一个自定义活动,例如扩展活动的MyCustomActivity。
public class MyCustomActivityextends Activity{
在本课程中,您可以使用getActionBar()并根据需要进行调整
答案 1 :(得分:0)
如果您想为所有活动使用一个ActionBar,请使用继承。创建一个简单地处理ActionBar的Activity,就像你想要的那样,并使它成为像这样的超类。
public class ActionBarActivity extends Activity{
public void onCreate(... ) {
ActionBar actionBar = getActionBar();
// + some other method calls of your choice
}
public onCreateOptionsMenu(Menu menu){
// create your actionbaritems here
}
public boolean onOptionsItemSelected(MenuItem item) {
// handle your click events for the items here
}
}
现在,您可以将此活动用于所有具有继承的活动:
public class MyActivity extends ActionBarActivity{
...
}
使用此设置,您可以随意使用碎片。
请记住,每次调用一个新的Activity时,都会调用超类的回调。
答案 2 :(得分:0)
我认为你在想的是: 您希望每个屏幕上的操作栏都相同,只需要编程一次。 我使用的方法是,操作栏位于根活动中,包含单个viewpager。并且用户与之交互的所有屏幕都是该视图寻呼机中的碎片。
如果你在eclipse中创建一个空白的android项目,并选择带有标签的actiobar,项目会为你设置它,你可以看到它是如何工作的。
答案 3 :(得分:0)
在大多数情况下,这将是一种不必要的并发症。一旦开始,您可能会发现只需几行简单的代码就可以在每个活动中创建一个“相同”的Action Bar。主题等可以在以后添加。在这个阶段更好的问题可能是我应该使用Action Bar Sherlock来更好地支持旧设备吗?您应该考虑应用程序的整体结构,例如活动/片段活动/片段/标签,以便您能够快速获得可以在开发完整解决方案时进行扩展的内容。