Тільки завершуємо те, що @Kurtis Nusbaum дотичним прикладом.
ОНОВЛЕННЯ: як сказав @ rudy-s, з новітньою бібліотекою підтримки для Android (api 18) я побачив, що у них вже є вбудована підтримка панелі дій (називається ActionBarCompat клас).
Я створив два простих додатки, щоб показати візуальну різницю між сумісністю ActionBarSherlock та ActionBar. Дивіться порівняльні зображення:
Тепер поява при натисканні кнопки меню:
Як бачимо, образи просто нав'язують сказане. Сумісність панелі дій дає панель дій, лише якщо пристрій, на якому ви працюєте, має рівень 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);
}
}
У додатку Шерлок був необхідний додатковий конфігурація:
<style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar">
ОНОВЛЕННЯ: як сказав @ rudy-s, з новітньою бібліотекою підтримки для Android (api 18) я побачив, що у них вже є вбудована підтримка панелі дій (називається ActionBarCompat клас).