Juste de terminer ce @Kurtis Nusbaum avec un exemple pratique.
Mise à JOUR: @rudy-s, avec le plus récent android bibliothèque de prise en charge de l'api (18), j'ai vu qu'ils ont déjà un support intégré pour le contrôle actionbar (appelé ActionBarCompat classe).
J'ai construit deux applications simples pour montrer la différence visuelle entre ActionBarSherlock et ActionBar de Compatibilité. Voir les comparaisons, les images:
Maintenant l'apparence lorsque la touche menu est enfoncée:
Comme vous pouvez le voir, les images juste d'appliquer ce qui a été dit. Barre d'Action de Compatibilité vous donne la barre d'action uniquement si le périphérique que vous êtes en cours d'exécution de l'API de niveau 3.0 ou supérieur. Alors que Sherlock est plus général.
Ci-dessous vous pouvez voir la source de l'application.
Le menu fichier xml est le même:
<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>
La compatibilité de l'activité:
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;
}
}
Sherlock activité:
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);
}
}
Un supplément de config était nécessaire sur sherlock app:
<style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar">
Mise à JOUR:
@rudy-s, avec le plus récent android bibliothèque de prise en charge de l'api (18), j'ai vu qu'ils ont déjà un support intégré pour le contrôle actionbar (appelé ActionBarCompat classe).