/ / Apps com barra de ação pré-Android 3.0 - Android, android-actionbar, actionbarsherlock

Apps com barra de ação pré-Android 3.0 - Android, android-actionbar, actionbarsherlock

Eu uso isso em um aplicativo que eu segmentar Android 3.0+ apenas. Eu gostaria de obter mais pessoas, mas o ActionBar não é compatível com versões anteriores. Eu não quero usar uma biblioteca de terceiros como ActionBarSherlock. Eu segui esse caminho e foi mais uma dor do que valeu a pena.

Eu tenho código assim:

final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);

É possível envolver isso com um if - else Verificação do SDK? Fora da Barra de Ação, 99% de outro código é compatível com o pré-3.0 (bem, estou usando Fragmentos, mas usando a Biblioteca de Suporte).

Respostas:

4 para resposta № 1

Sim, algo assim:

      @TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setupActionBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);
}
}

Certifique-se de ter sua variável actionBar global


2 para resposta № 2

Você pode fazer algo assim:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);
}

0 para resposta № 3

Sim. Eu os uso bastante extensivamente. No entanto, assista esta do Google I / O 2012, pois oferece uma boa visão sobre práticas ainda melhores.

Você pode obter a versão como um int usando Build.VERSION.SDK_INT. É fácil configurar isso:

final int version = Build.VERSION.SDK_INT;
ActionBar actionBar;

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void ABsetup() {
if (version >= Build.VERSION_CODES.HONEYCOMB) {
actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);          }
}

-1 para resposta № 4

Outra opção é usar o ActionBarSherlock, que torna a barra de ação compatível com o Android 2.1 (SDK 7).

Link aqui: http://actionbarsherlock.com/