1

Я разрабатываю приложение, используя ActionbarSherlock для обратной совместимости, и у меня возникают проблемы с Spinner. Я добавляю к ActionBar.Элементы действия ActionBar, не работающие на некоторых устройствах

Сценарий:

Я использую ActionBar.NAVIGATION_MODE_TABS и каждая вкладка является Fragment с собственным надутым меню.

У меня нет проблем с раздуванием и заполнением меню или Spinner, но проблема в том, что Spinner не распространяется, когда пользователь нажимает на нее. Однако, когда пользователь переходит на другой номер fragment, Spinner расширяет (и отображается не так fragment), а при отклонении назад Spinner работает должным образом в правильном fragment.

Эта проблема возникает только на устройствах < 4.0.x (не пробовал 3.x). При тестировании на> 4.0.x он работает так, как ожидалось.

Я пробовал отлаживать и проходить через методы обратного вызова, но я не могу понять, почему это происходит. Это может быть ошибка в старых версиях Android, или это потому, что меню и так обрабатываются по-разному? (не должен, так как я использую ActionbarSherlock).

У кого-нибудь есть идея, почему это происходит?

EDIT:

Я заметил, что проблема возникает в fragments/tabs, что не не добавляется первым в ViewPager, независимо от того, какое действие пункт в меню. Первый tab, то есть тот, который активен после запуска Activity, никогда не имеет этой проблемы.

Является ли это только тем, кто чего-то не хватает, или это как это должно быть?

+0

Вы нашли решение для вашей проблемы? Я думаю, что у меня подобный. – Izydorr

ответ

0

Попробуйте, это может помочь вам

Для блесны

<com.actionbarsherlock.internal.widget.IcsSpinner 
    android:id="@+id/spinner_id_name" 
    style="@style/your_style_name" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dp" 
    android:scrollbars="none" /> 

В style.xml применить этот

 <style name="your_style_name"> 
      <item name="android:dropDownWidth">fill_parent</item> 
      <item name="android:background">@drawable/spinner_background</item> 
      <item name="android:popupBackground">@drawable/spinner_dropdown_background</item> 
      <item name="android:divider">@color/gray_darkest</item> 
      <item name="android:alignmentMode">alignBounds</item> 
      <item name="android:dividerHeight">2dp</item> 
      <item name="android:scrollbars">none</item> 
      <item name="android:scrollbarAlwaysDrawVerticalTrack">false</item> 
      <item name="android:scrollbarTrackVertical">@android:color/transparent</item> 
      <item name="android:dropDownSelector">@android:color/holo_dark</item> 
      <item name="android:requiresFadingEdge">none</item> 
     </style> 
+0

спасибо за ваш ответ, но проблема все еще происходит. см. мой обновленный пост – Rob

+0

Я думаю, что у вас проблемы с обратным изображением, нарежьте его снова.Затем вы должны слегка отрегулировать фоновое изображение счетчика, он не должен касаться края экрана – RajeshVijayakumar

+0

Я не уверен, что вы имеете в виду, нарезая фоновое изображение, но, как я писал в обновлении, проблема не только вовлекайте Spinners, но все пункты меню, которые не находятся в активном фрагменте, когда начинается действие – Rob

0

у меня была очень похожая проблема. В моем случае Activity расширился еще один, а «родительская» активность возвращалась false в onPrepareOptionsMenu(). Это вызвало неправильное поведение на Android 2.x, на Android 4 все было в порядке. Когда я изменил код для возврата true, все исправлено. Еще одна очень странная вещь, которую я заметил, это то, что неработающие значки ActionItem, где темнее, чем хорошие (в другом Activity).

Смежные вопросы