Vervollständigen Sie einfach das, was @Kurtis Nusbaum mit einem praktischen Beispiel.
UPDATE: Wie @ rudy-s sagte, habe ich mit der neuesten Android-Unterstützungsbibliothek (API 18) gesehen, dass sie bereits eine integrierte Unterstützung für die Aktionsleiste (ActionBarCompat-Klasse genannt) haben.
Ich habe zwei einfache Anwendungen erstellt, um den visuellen Unterschied zwischen ActionBarSherlock und ActionBar-Kompatibilität zu zeigen. Siehe die Vergleichsbilder:
Nun das Aussehen, wenn die Menütaste gedrückt wird:
Wie Sie sehen können, erzwingen die Bilder nur das, was gesagt wurde. Mit der Aktionsleisten-Kompatibilität erhalten Sie die Aktionsleiste nur, wenn das Gerät, auf dem Sie ausgeführt werden, API-Level 3.0 oder höher ist. Während Sherlock allgemeiner ist.
Unten sehen Sie die Anwendungsquelle.
Die Menü-XML-Datei ist dieselbe:
<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>
Aktivität der Kompatibilität:
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;
}
}
Sherlocks Aktivität:
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);
}
}
Eine zusätzliche Konfiguration war für die Sherlock-App erforderlich:
<style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar">
UPDATE: Wie @ rudy-s sagte, habe ich mit der neuesten Android-Unterstützungsbibliothek (API 18) gesehen, dass sie bereits eine integrierte Unterstützung für die Aktionsleiste (ActionBarCompat-Klasse genannt) haben.