我正在尝试创建一个 PopupWindow,其工作方式类似于 Android 版 Chrome 中的操作栏菜单 - 例如: 如何创建自定义子菜单,如 Google Chrome 应用程序
这是我到目前为止所拥有的:
目前 - 我有 3 个问题:
我需要将菜单定位到右侧的操作栏按钮及其下方。像通常的菜单..
我需要在 PopupWindow 上有一个阴影(由于某种原因它被删除了,因为我知道 PopupWindow 自动在它周围有这个阴影)
在弹出窗口外部单击时,我需要它像操作栏的常用菜单一样关闭。
这是我的代码 - 单击操作栏按钮,这是运行的代码:
LayoutInflater inflater = (LayoutInflater) MainActivity.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final PopupWindow pw = new PopupWindow(inflater.inflate(
R.layout.options_menu, null, false), LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
pw.showAtLocation(findViewById(R.id.main_cont), Gravity.NO_GRAVITY, 50, this.getSupportActionBar().getHeight() + 1);
ListView moreOptions = (ListView)pw.getContentView().findViewById(R.id.moreOptions);
String[] options = new String[] { "Settings", "Feedback", "Contribute", "DashClock Integration", "Tutorial", "ViewPager Demo", "Expandable List Demo", "Change Language", "Add 5 to list", "Add 20 to list" };
final ArrayList<String> moreOptionsList = new ArrayList<String>();
for (int i = 0; i < options.length; ++i) {
moreOptionsList.add(options[i]);
}
ArrayAdapter<String> moreOptionsAdapter=new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
moreOptionsList);
moreOptions.setAdapter(moreOptionsAdapter);
//pw.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.listview_bg_inverted));
/*
pw.setTouchable(true);
pw.setFocusable(false);
*/
pw.setOutsideTouchable(true);
菜单设计:http: //pastebin.com/yi6S2HDt
提前感谢,丁。