我有一个弹出菜单,当我点击操作栏中的操作按钮时会出现。我想在弹出菜单中的MenuItem具有如下自定义布局:
layout/menu_item_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/menuItemLayout"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageViewMenuItem"
android:layout_width="20dip"
android:layout_height="20dip"
android:src="@drawable/abc_list_focused_holo" />
<TextView
android:id="@+id/textViewMenuItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextViewMenuItem" />
</LinearLayout>
这是PopUpMenu的xml:
menu/pop_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="apparound.actiobarpopupstylefacebook.Main" >
<item
android:id="@+id/popupItem"
android:showAsAction="ifRoom"/>
</menu>
在我的活动代码如下:
public void showPopup(int idR){
View menuItemView = findViewById(idR);
PopupMenu popup = new PopupMenu(this, menuItemView);
MenuInflater inflate = popup.getMenuInflater();
inflate.inflate(R.menu.pop_menu, popup.getMenu());
MenuItem menuItem= popup.getMenu().findItem(R.id.popupItem);
menuItem.setActionView(R.layout.menu_item_layout);
popup.show();
}
但是当弹出菜单时,项目是空的。我错了使用setActionview()方法?谢谢。
3条答案
按热度按时间p8h8hvxi1#
对于不能使用菜单的自定义布局,一个替代选项是PopupWindow
在res/layout文件夹中创建名为my layout.xml的XML文件
nnsrf1az2#
默认情况下,PopupMenu的布局(及其项)无法自定义。在下面的解决方案中,我创建了一个水平布局的PopupMenu。在这种情况下,我使用TextView作为可单击项,但您可以轻松地将其替换为按钮。您可以自定义任何您想要的菜单项。
1 -Custom PopupMenu类:
2 -您的自定义布局,例如水平布局的线性布局。在这种情况下,我使用一个简单的线性布局与TextView项目。您可以使用按钮等。
3 -使用自定义弹出菜单像正常弹出菜单。
uyto3xhc3#
Final PopupWindow popupWindow = new PopupWindow();
//扩展布局或动态添加视图//上面是工作代码,我检查过了