关于Java:Android弹出菜单未固定到操作栏上的按钮

Android popup menu is not anchored to button on Action bar

我在Android上创建弹出菜单时遇到问题。通常,我想动态加载弹出窗口,但是当我执行该应用程序时,菜单不在屏幕上,并且没有固定在按钮上...为什么?

这是一个可以理解的屏幕:

enter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class MainActivity extends FragmentActivity
{
    PopupMenu select_job;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
         //...
         View view = inflater.inflate(R.layout.my_custom_layout ,null);
         select_job = new PopupMenu(this, view);
         select_job.getMenu().add("ProvaLavoro");
    }

    public boolean onOptionsItemSelected(MenuItem item)
    {
        switch(item.getItemId())
        {
            case R.id.popupmenu:
                select_job.show();
                break;
        }
    }
}

这是my_custom_layout.xml,用于使发白膨胀:

1
2
3
4
5
6
7
8
9
10
11
12
13
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/txtNameJobND"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="0dp"
        android:textColor="#111"
        android:textStyle="bold"/>

</RelativeLayout>

我在做什么错?

谢谢!!


1
         select_job = new PopupMenu(this, view);

在这里,视图是弹出菜单的"锚点"。您应该传递MenuItem(R.id.popupmenu)作为锚点。

我自己没有做过(将PopupMenu固定到Actionbar项上),但是我认为这应该是它的背后思想。

来自Android文档:

公共PopupMenu(上下文上下文,视图锚)

已添加到API级别11

构造一个新的PopupMenu。

参数

context:PopupMenu的上下文。

anchor:此弹出窗口的锚点视图。如果有空间,则弹出窗口将显示在锚点的下方;如果没有空间,则弹出窗口将显示在其上方。