我想要一个弹出下拉菜单,其中包含从操作栏中的按钮打开的图标(定制的溢出菜单)。因此我给了我MenuItem
一个ActionView
并放了一个OnClickListener
在它下面打开弹出菜单作为下拉菜单View
。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
MenuItem item = menu.findItem(R.id.action_settings);
item.setActionView(R.layout.menu_overflow);
item.expandActionView();
final View vs = (View) menu.findItem(R.id.action_settings).getActionView();
vs.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showPopup(MainActivity.this, vs);
}
});
return true;
}
menu_overflow.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:clickable="true"
>
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
/>
菜单.xml
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="always"
android:icon="@drawable/ic_launcher"
/>
动作栏中的按钮没有响应。
当我在 xml 中声明操作视图时,按钮会响应,但图标不会显示。像这样的例子:
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="always"
android:icon="@drawable/ic_launcher"
android:actionViewClass="android.widget.ImageButton"
/>