我有一个在 XML 中定义的可折叠菜单项,如下所示:
<item
android:id="@+id/searchMenu"
android:icon="@android:drawable/ic_menu_search"
android:showAsAction="withText|always|collapseActionView"
android:actionLayout="@layout/collapsible_edittext"/>
这是 collapsible_edittext.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:imeOptions="actionSearch"
android:inputType="text"
android:hint="@string/search"/>
当项目展开,并且您更改手机的方向时,它会崩溃,并在 logcat 中显示此错误:
07-24 08:59:19.353: E/AndroidRuntime(1284): 由: java.lang.IllegalArgumentException: 错误的状态类,期待视图状态,但收到类 android.widget.TextView$SavedState 代替。当不同类型的两个视图在同一层次结构中具有相同的 id 时,通常会发生这种情况。这个视图的 id 是 id/searchMenu。确保其他视图不使用相同的 ID。
如果我删除 android:id="@+id/searchMenu",一切正常,但我需要代码中的项目 ID。此错误仅发生在 ICS 上(它甚至可以在果冻豆模拟器中使用)并且我使用的是 ActionBarSherlock 4.1.0