即使操作栏中有空格,按钮也会折叠

时间:2014-04-19 04:01:14

标签: android android-search

我想在我的项目中实现SearchView或searchDialog,所以我编辑了我的main_menu.xml文件,看起来像这样

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >

<item
    android:id="@+id/btn_action_bookmark"
    android:icon="@drawable/ic_bookmark"
    android:title="@string/bookmark_label"
    android:visible="false"
    app:showAsAction="always|collapseActionView"/>
<item
    android:id="@+id/btn_action_un_bookmark"
    android:icon="@drawable/ic_un_bookmark"
    android:title="@string/un_bookmark_label"
    android:visible="false"
    app:showAsAction="always|collapseActionView"/>
<item
    android:id="@+id/btn_action_remove"
    android:icon="@drawable/ic_remove"
    android:title="@string/remove_label"
    android:visible="false"
    app:showAsAction="always|collapseActionView"/>
<item
    android:id="@+id/btn_action_download"
    android:icon="@drawable/ic_download"
    android:title="@string/download_label"
    android:visible="false"
    app:showAsAction="always|collapseActionView"/>
<item
    android:id="@+id/menu_search"
    android:icon="@drawable/ic_btn_search"
    android:title="@string/action_bar_button_search"
    android:visible="true"
    android:showAsAction="always"/>
<item
    android:id="@+id/menu_item_share"
    android:title="@string/share_label"
    app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
    app:showAsAction="always"/>

这里,第二个是搜索一个。如果我在它和分享之间交换,应用程序崩溃并且没有打开。 如果我喜欢这样,我的搜索选项会崩溃。

Screenshot

为什么会这样?没有代码说崩溃它。 我有一个Actionbarparentactivity,它扩展了actionbaractivity(支持),一个homeactivity实现了actionbarparentactivity,其中实现了导航抽屉,以及一个实现homeactivity的anracractivity。稍后在app中还有另一个活动,它直接实现了actionbarparentactivity而没有导航抽屉的东西,还有搜索按钮被折叠。

1 个答案:

答案 0 :(得分:1)

我认为问题是由android:showAsAction引起的。您忘记了自定义前缀属性:

<item
    android:id="@+id/menu_search"
    android:icon="@drawable/ic_btn_search"
    android:title="@string/action_bar_button_search"
    android:visible="true"
    app:showAsAction="always" />   <--- on this line