Просто завершаю то, что @Kurtis Nusbaum практическим примером.
ОБНОВЛЕНИЕ: как сказал @ rudy-s, с новейшей библиотекой поддержки Android (API 18), я увидел, что у них уже есть встроенная поддержка панели действий (называется класс ActionBarCompat).
Я построил два простых приложения, чтобы показать визуальную разницу между ActionBarSherlock и ActionBar Compatibility. Смотрите сравнительные изображения:
Теперь внешний вид при нажатии кнопки меню:
Как видите, изображения только усиливают сказанное. Совместимость панели действий дает вам панель действий, только если устройство, на котором вы работаете, имеет уровень API 3.0 или выше. Пока Шерлок носит более общий характер.
Ниже вы можете увидеть исходный код приложения.
Файл меню XML такой же:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_1"
android:orderInCategory="100"
android:showAsAction="always"
android:title="@string/action1"/>
<item
android:id="@+id/action_2"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="@string/action2"/>
<item
android:id="@+id/action_3"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="@string/action3"/>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
</menu>
Совместимость деятельности:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Деятельность Шерлока:
public class MainActivity extends SherlockActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
getSupportMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
}
В приложении sherlock был необходим дополнительный конфиг:
<style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar">
ОБНОВЛЕНИЕ: как сказал @ rudy-s, с новейшей библиотекой поддержки Android (API 18), я увидел, что у них уже есть встроенная поддержка панели действий (называется класс ActionBarCompat).