有一个名为ActionBarSherlock的令人难以置信的项目,它允许在 2.X 以上的 API 中使用所有 ActionBar 功能
它会带你一个示例项目来理解和设置依赖关系,它会解决你的很多问题:) 只需调用 getSupportActionBar() 并且所有方法都可用。
我犯的一些常见错误是没有正确设置主题。
<style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>
<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
<item name="background">@drawable/bg_striped</item>
<item name="android:background">@drawable/bg_striped</item>
<item name="backgroundSplit">@drawable/bg_striped_split</item>
<item name="android:backgroundSplit">@drawable/bg_striped_split</item>
然后,您必须将该主题应用于将支持 ActionBar 的每个活动或应用程序标记。
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:name=".ApplicationClass"
android:theme="@style/Theme.Styled">
您还可以设置一个 menu.xml,其中包含 Bar 上的项目:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_save"
android:icon="@drawable/ic_launcher"
android:title="TestMe"
android:menuCategory="system"
android:showAsAction="never" />
<item android:id="@+id/menu_launch"
android:icon="@drawable/ic_launcher"
android:title="Test2"
android:menuCategory="secondary"
android:showAsAction="never" />
<item android:id="@+id/menu_go"
android:icon="@drawable/ic_launcher"
android:title="Test"
android:showAsAction="always|withText" />
</menu>
我学到的最有趣的事情是每个活动或片段都可以将他们的动作放在栏上,所以如果片段是可搜索的,则可以设置带有放大镜图标的选项等。
它在以前的版本中存在片段问题,在当前版本中似乎已解决,如果需要,我可以使用RoboGuice和片段支持设置一些示例代码。
希望它有所帮助,问候。