@Kurtis Nusbaum'u pratik bir örnekle tamamlamak.
GÜNCELLEME: @ rudy-s'nin söylediği gibi, en yeni android destek kütüphanesi (api 18) ile, zaten actionbar (ActionBarCompat sınıfı olarak adlandırılır) için yerleşik desteğe sahip olduklarını gördüm.
ActionBarSherlock ve ActionBar Uyumluluğu arasındaki görsel farkı göstermek için iki basit uygulama geliştirdim. Karşılaştırmalı resimlere bakın:
Şimdi menü düğmesine basıldığında görünüm:
Gördüğünüz gibi, görüntüler sadece söylenenleri zorlar. Eylem Çubuğu Uyumluluğu, işlem çubuğunu yalnızca üzerinde çalıştığınız cihaz API düzey 3.0 veya üstü ise verir. Sherlock daha genel olsa da.
Aşağıda uygulama kaynağını görebilirsiniz.
Menü xml dosyası aynı:
<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>
Uyumluluğun etkinliği:
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 kullanıcısının aktiviteleri:
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 uygulamasında ek bir yapılandırma gerekliydi:
<style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar">
GÜNCELLEME: @ rudy-s'nin söylediği gibi, en yeni android destek kütüphanesi (api 18) ile, zaten actionbar (ActionBarCompat sınıfı olarak adlandırılır) için yerleşik desteğe sahip olduklarını gördüm.