Usando a barra de ação de suporte inicial ativada
Acabei de modificar nosso código para usar a nova SupportActionBar fornecida na biblioteca v7-appcompat, mas ao executar o código em um telefone Jellybean (provavelmente existe o mesmo problema para Honeycomb e Ice Cream Sandwich) o botão home nunca parece ser ativado.
Chamando getSupportActionBar (). SetHomeButtonEnabled (true); não parece fazer o que diz, mas funciona para telefones Gingerbread.
Se eu substituí-lo com getActionBar (). SetHomeButtonEnabled (true) funciona.
O tema que eu uso para o v11 + é o seguinte:
<style name="MyTheme" parent="@style/Theme.AppCompat">
<item name="android:windowActionBar">true</item>
<item name="android:windowNoTitle">false</item>
<item name="android:listViewStyle">@style/MyListView</item>
<item name="android:actionBarStyle">@style/MyActionBarStyle</item>
<item name="android:windowSoftInputMode">stateAlwaysHidden</item>
<item name="android:buttonStyle">@style/MyButton</item>
<item name="android:radioButtonStyle">@style/MyRadioButtonStyle</item>
<item name="android:windowContentOverlay">@drawable/ab_solid_dove_grey</item>
<item name="android:windowTitleSize">@dimen/action_bar_height</item>
<item name="android:selectableItemBackground">@drawable/sel_standard_item</item>
<item name="android:windowBackground">@drawable/default_bg</item>
<item name="android:actionMenuTextAppearance">@style/MyActionBarText</item>
<item name="android:actionMenuTextColor">@color/gallery</item>
<item name="android:tabWidgetStyle">@style/MyTabWidget</item>
</style>
E o estilo da barra de ação v11 + é definido:
<style name="MyActionBarStyle" parent="android:style/Widget.Holo.ActionBar">
<item name="android:displayOptions">useLogo|showHome|showCustom</item>
<item name="displayOptions">useLogo|showHome|showCustom</item>
<item name="android:actionBarSize">@dimen/action_bar_height</item>
<item name="android:icon">@drawable/ic_launcher</item>
<item name="android:background">@android:color/transparent</item> <!-- Remove blue line from bottom of action bar -->
</style>
Alguém sabe por que o botão home não está sendo ativado quando em uma versão do Android que suporta barra de ação corretamente.
=== UPDATE === Acabei de olhar o código-fonte da biblioteca appcompat e notei o seguinte em ActionBarImplBase que parece errado para mim:
setHomeButtonEnabled(abp.enableHomeButtonByDefault() || homeAsUp);
Isso significa que o botão home só será habilitado se a versão do Android for menor que o ICS ou se eu tiver ativado o indicador de up? - o que eu não quero.