如何更改弹出菜单弹出的位置 [英] How can I change the position of where my Popup menu pops up
本文介绍了如何更改弹出菜单弹出的位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在每个项目的列表视图适配器中都有一个弹出菜单.菜单在屏幕的左侧弹出,如何将其更改为右侧
I have a popup menu in a listview adapter for each item. The menu pops up on the left edge of the screen, how can I change it to be on the right
private void showPopupMenu(View v, final App app) {
PopupMenu popupMenu = new PopupMenu(context, v);
popupMenu.getMenuInflater().inflate(R.menu.quick_action_menu,
popupMenu.getMenu());
popupMenu
.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
...
推荐答案
迟到不止一次=)这是我的决定,允许您将PopupMenu设置为指定的坐标.代码不是很好,但是可以.
Better late than once =) This is my decision, allows you to set PopupMenu to the specified coordinates. The code is not very good but it works.
public void show(Activity activity, float x, float y)
{
final ViewGroup root = (ViewGroup) activity.getWindow().getDecorView().findViewById(android.R.id.content);
final View view = new View(context);
view.setLayoutParams(new ViewGroup.LayoutParams(1, 1));
view.setBackgroundColor(Color.TRANSPARENT);
root.addView(view);
view.setX(x);
view.setY(y);
PopupMenu popupMenu = new PopupMenu(context, view, Gravity.CENTER);
popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener()
{
@Override
public void onDismiss(PopupMenu menu)
{
root.removeView(view);
}
});
popupMenu.show();
}
这篇关于如何更改弹出菜单弹出的位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文