ActionBar的操作项无法在某些设备上运行

时间:2012-11-22 20:22:48

标签: android spinner android-actionbar actionbarsherlock android-spinner

我正在使用ActionbarSherlock开发一个应用程序以实现向后兼容性,而且我目前在添加到Spinner的{​​{1}}时遇到问题。

情景:

我正在使用ActionBar,每个标签都是ActionBar.NAVIGATION_MODE_TABS,并带有自己的充气菜单。

我可以通过膨胀和填充菜单或Fragment来解决问题,但问题是当用户点击它时Spinner没有扩展。但是,当用户滑动到另一个Spinner fragment展开时(并显示在错误的Spinner中),当再次向后滑动时,fragment按预期工作纠正Spinner

此问题仅发生在设备< 4.0.x上(尚未尝试3.x)。在> 4.0.x上测试时,它按预期工作。

我已经尝试过调试并通过回调方法,但我无法弄清楚为什么会发生这种情况。它可能是旧版Android中的错误,还是因为菜单等处理不同? (不应该因为我正在使用fragment)。

有没有人知道为什么会这样?

修改

我注意到ActionbarSherlock的问题出现在fragments/tabs的第一个问题上,无论菜单中的操作项是什么。第一个ViewPager,即tab启动后处于活动状态的Activity,从未出现此问题。

只是我缺少某些东西,或者这是它应该如何?

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

我有一个非常类似的问题。就我而言,Activity正在扩展另一个,而“父”活动正在false函数中返回onPrepareOptionsMenu()。这导致Android 2.x上的错误行为,在Android 4上一切都还可以。当我更改代码以返回true时,所有内容都已修复。我注意到的另一个非常奇怪的事情是,非工作ActionItem图标比较好的图标(在另一个Activity中更深)。