在Android中编写更好的ActionBars的步骤

时间:2012-02-06 21:33:13

标签: android

使用ActionBar时,这些是我的疑惑。

1)为了使其在各种标签中流行,我不得不在所有标签中重复相同的代码。有没有更好的方法来重写这部分?我可以有一个ActionBar类,我可以在任何地方调用它,但这不会使它变得动态。 (某些标签中有更多选项。)

2)我现在正在定义一个菜单并对其进行充气。这是最好的方式吗?我在这里遇到的问题是我绝对没有使用整个空间,并且总是耗尽空间来投入更多动作。如何纠正它?

3)当我使用Theme.Light时,我面临的第三个问题是一个错误。该应用程序崩溃。如果我使用Theme.Holo.Light,该应用程序不会。虽然,它仍然在2.3支持手机中崩溃。无论如何要纠正那个?我主要觉得我错过了向后兼容性或者Action栏与某些主题不兼容?

1 个答案:

答案 0 :(得分:1)

这可以直接从文档here回答您的第3个问题:

从Android 3.0(API级别11)开始,操作栏包含在使用Theme.Holo主题(或其后代之一)的所有活动中,这是设置targetSdkVersion或minSdkVersion属性时的默认主题到“11”或更高。

如果要使用ActionBar API,例如添加导航模式和修改操作栏样式,则应将minSdkVersion设置为“11”或更高。如果您希望自己的应用支持旧版Android,则可以在支持API级别11或更高版本的设备上使用一组有限的ActionBar API,同时仍在旧版本上运行。有关保持向后兼容的信息,请参阅侧箱。

边箱信息

如果您想在应用程序中提供操作栏并与早于3.0的Android版本保持兼容,则需要在活动的布局中创建操作栏(因为旧版本中不提供ActionBar类的版本)。

为了帮助您,Action Bar Compatibility示例应用提供了一个API图层和操作栏布局,允许您的应用使用某些ActionBar API,并通过使用自定义替换传统标题栏来支持旧版Android动作栏布局。