8

Niektórzy użytkownicy mojej aplikacji doświadczają dziwnego problemu podczas korzystania z mojej aplikacji w trybie poziomym. Używam actionbarsherlock i ustawiłem tryb nawigacji na tabulatory (używając ActionBar.NAVIGATION_MODE_TABS). Niektórzy użytkownicy zauważają podczas uruchamiania aplikacji w pionie, a następnie obracając urządzenie pasek akcji pokazuje listę spinnerów, a nie karty (co najwyraźniej jest oczekiwanym zachowaniem). Problem polega na tym, że przędzarki nie można wybrać.Zakrętarka ActionBarSherlock nie jest dostępna ins ActionBar - związane z tematem

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); 

EDIT właśnie odkrył, że jest związana z moim niestandardowego tematu. Zmiana motywu na domyślny Sherlock.Light sprawia, że ​​pokrętło można wybierać. Niestandardowy motyw jest pokazany poniżej.

<!-- 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

Cóż, część nie do wybrania jest zła. Jednak "NAVIGATION_MODE_TABS" będzie tylko czasami pokazywać karty, głupie, jak to brzmi. W większości przypadków pokaże się "Spinner". Podejrzewałem, że jest to jeden z powodów, dla których ludzie używają kart "ViewPager" i kart z suwakiem (np. "ViewPagerIndicator") jako zamienników dla kart na pasku akcji. Aby uzyskać więcej informacji na ten temat, zobacz: http://code.google.com/p/android/issues/detail?id=24439 – CommonsWare

+0

Wow, który wydaje się głupi! Jakiś pomysł, który może powodować, że spinner będzie nie do wybrania? – bencallis

+1

Bije na mnie, dlatego pozostawiłem pytanie bez odpowiedzi, w nadziei, że Jake lub ktoś inny może zadzwonić. Jeśli nie otrzymasz odpowiedzi za dzień lub dwa, spróbuj grupy Google ActionBarSherlock. – CommonsWare

Odpowiedz

0

Wow więc okazuje się, że to było tak, że nie stwierdził rodzica kiedy themeing ActionDropDownStyle.

Dopiero gdy utworzyłem nowy projekt, odkryłem, że jest on związany z tematem. Przypuszczam, że problem dotyczący kodu lub niewłaściwej zmiany orientacji w obsłudze.

wykonując następujące czynności sortuje go:

<!-- 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> 

Jedynym problemem jest teraz niektóre elementy spinner są odcięte i zastąpione ... Chociaż myślę, że jest to znany błąd.

Powiązane problemy