8

Algunos usuarios de mi aplicación están experimentando un problema extraño al usar mi aplicación en modo apaisado. Estoy usando actionbarsherlock y he configurado el modo de navegación en pestañas (usando ActionBar.NAVIGATION_MODE_TABS). Algunos usuarios se encuentran al iniciar la aplicación en vertical y luego girando el dispositivo, la barra de acciones muestra una lista giratoria en lugar de las pestañas (que aparentemente es el comportamiento esperado). El problema es que la ruleta no es seleccionable.ActionBarSherlock spinner no seleccionable en ActionBar - Tema relacionado

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
    bar.addTab(bar.newTab().setText("Deals").setTabListener(this),false); 
    bar.addTab(bar.newTab().setText("Vouchers").setTabListener(this),false); 
    bar.addTab(bar.newTab().setText("Freebies").setTabListener(this),false); 

EDITAR Así descubrieron que se relaciona con mi tema personalizado. Cambiar el tema al Sherlock predeterminado. Light hace que el selector sea seleccionable. El tema personalizado se muestra a continuación.

<!-- Variation on the Holo Light theme that styles the Action Bar --> 
<style name="DealPadTheme" parent="Theme.Sherlock.Light.ForceOverflow"> 
    <item name="android:selectableItemBackground">@drawable/ad_selectable_background</item> 
    <item name="actionBarItemBackground">@drawable/ad_selectable_background</item> 
    <item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item> 
    <item name="actionBarTabStyle">@style/MyActionBarTabStyle</item> 
    <item name="android:actionBarStyle">@style/Widget.ActionBar</item> 
    <item name="actionBarStyle">@style/Widget.ActionBar</item> 
    <item name="android:dropDownListViewStyle">@style/MyDropDownListView</item> 
    <item name="dropDownListViewStyle">@style/MyDropDownListView</item> 
    <item name="android:actionDropDownStyle">@style/MySpinner</item> 
    <item name="actionDropDownStyle">@style/MySpinner</item> 
    <item name="android:activatedBackgroundIndicator">@drawable/selectable_list_item</item> 
    <item name="activatedBackgroundIndicator">@drawable/selectable_list_item</item> 
    <item name="android:listSelector">@style/MyListView</item> 
</style> 

<style name="MyListView" parent="@android:style/Widget.ListView"> 
    <item name="android:listSelector">@drawable/list_arrow_selected_holo</item> 
</style> 

<!-- style for the tabs --> 
<style name="MyActionBarTabStyle"> 
    <item name="android:background">@drawable/actionbar_tab_bg</item> 
    <item name="android:paddingLeft">16dp</item> 
    <item name="android:paddingRight">16dp</item> 
    <item name="android:gravity">center_horizontal</item> 
</style> 

<style name="Widget.ActionBar" parent="Widget.Sherlock.Light.ActionBar"> 
    <item name="android:displayOptions">showHome|useLogo|showCustom</item> 
    <!-- removed as not all activites need it <item name="android:customNavigationLayout">@layout/custom_action_bar</item> --> 
    <item name="android:background">@drawable/ad_tab_unselected_holo</item> 
    <item name="background">@drawable/ad_tab_unselected_holo</item> 
    <item name="android:titleTextStyle">@style/Widget.ActionBar.Title</item> 
    <item name="titleTextStyle">@style/Widget.ActionBar.Title</item> 
</style> 

<style name="Widget.ActionBar.Title" parent="Widget"> 
    <item name="android:textSize">12sp</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:textColor">?android:attr/textColorPrimary</item> 
</style> 

<!-- style the items within the overflow menu --> 
<style name="MyDropDownListView" parent="Widget.Sherlock.Light.ListView.DropDown"> 
    <item name="android:listSelector">@drawable/ad_selectable_background</item> 
</style> 

<!-- style the items within the overflow menu --> 
<style name="MySpinner"> 
    <item name="android:background">@drawable/spinner_background</item> 
</style> 

+1

Bueno, la parte no seleccionable es mala. Sin embargo, 'NAVIGATION_MODE_TABS' solo ocasionalmente mostrará pestañas, tan estúpido como suena. Gran parte del tiempo, mostrará un 'Spinner'. Sospecho que esa es una de las razones por las cuales las personas usan las pestañas 'ViewPager' y Swipey (por ejemplo,' ViewPagerIndicator') como reemplazo de las pestañas en la barra de acciones. Para obtener más información sobre este tema, consulte: http://code.google.com/p/android/issues/detail?id=24439 – CommonsWare

+0

¡Vaya, parece tonto! ¿Alguna idea de lo que podría estar causando que el spinner sea no seleccionable? – bencallis

+1

Me late, por lo que dejé la pregunta sin respuesta, con la esperanza de que Jake o alguien más pueda responder. Si no obtiene una respuesta en uno o dos días, intente con el grupo de Google ActionBarSherlock. – CommonsWare

Respuesta

0

Vaya por lo que resulta que era ya que no había declarado el padre cuando themeing ActionDropDownStyle.

Solo cuando creé un proyecto nuevo descubrí que estaba relacionado con el tema. Supuse que se trataba de un problema relacionado con el cambio incorrecto del código o la orientación de manejo.

Hacer las siguientes clases que:

<!-- style the items within the overflow menu --> 
<style name="MySpinner" parent="Widget.Sherlock.Light.Spinner.DropDown.ActionBar" > 
    <item name="android:background">@drawable/spinner_background</item> 
</style> 

El único problema ahora es algunos de los elementos giradores se eliminan y se sustituyen con ... Aunque creo que esto es un error conocido.

Cuestiones relacionadas