Ответ 1
Возможно, вы захотите проверить, есть ли у вас соответствующая тема, указанная в вашем файле манифеста:
<application ... android:theme="@style/Theme.AppCompat">
Я пытаюсь реализовать PopupMenu с помощью библиотеки поддержки V7. Все компилируются нормально, но когда я пытаюсь позвонить:
PopupMenu popup = new PopupMenu(this, v);
popup.getMenu().add(Menu.NONE,MENU_SHARE_A,1,R.string.A);
popup.getMenu().add(Menu.NONE,MENU_SHARE_B,2,R.string.B);
popup.show();
при вызове возникает ошибка:
07-31 17: 23: 53.365: E/AndroidRuntime (14128): java.lang.RuntimeException: двоичная строка XML файла # 17: вы должны предоставить атрибут layout_height.
Какой из них я считаю "abc_popup_menu_item_layout.xml" с этим элементом:
<android.support.v7.internal.view.menu.ListMenuItemView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?attr/dropdownListPreferredItemHeight"
android:minWidth="196dip"
android:paddingRight="16dip">
Является ли это ошибкой или что-то не так?
Возможно, вы захотите проверить, есть ли у вас соответствующая тема, указанная в вашем файле манифеста:
<application ... android:theme="@style/Theme.AppCompat">
PopupMenu popup = new PopupMenu(this, v);
что "this" означает? первый параметр должен быть контекстом, например Activity, а не ApplicationContext!!
Добавьте эту строку в свою деятельность внутри manifest.xml
android:theme="@style/Theme.AppCompat"
В вашем файле макета "abc_popup_menu_item_layout.xml" уже указана высота.
Либо "? attr/dropdownListPreferredItemHeight" - это что-то из другой темы или библиотеки (например, ActionBarSherlock), или ошибка возникает из другого файла макета.
Кроме того, если вы замените "? attr/dropdownListPreferredItemHeight" на что-то вроде "60dp", ошибка исчезнет?
@style/Theme.AppCompat.Light избавил меня от этой проблемы. @style/Theme.AppCompat - темная тема, она не подходит для моего приложения.
Также проверьте, есть ли другой стиль, который применяется в каждом действии в manifest.xml. Это переопределит Theme.AppCompat в теге приложения.