java - Android 弹出菜单未锚定到操作栏上的按钮

标签 java android layout android-actionbar popupmenu

我在 Android 上创建弹出菜单时遇到问题。实际上,我想动态加载弹出窗口,但是当我执行应用程序时,菜单位于屏幕之外并且没有锚定在按钮上......为什么?

这是一个易于理解的屏幕:

enter image description here

enter image description here

这是我用来创建弹出菜单的摘要代码:

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 来膨胀whitin:

<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>

我做错了什么?

谢谢!!

最佳答案

         select_job = new PopupMenu(this, view);

这里, View 是弹出菜单的 anchor 。您应该传递 MenuItem (R.id.popupmenu) 作为 anchor 。

我自己还没有做过(将 PopupMenu 锚定到 Actionbar 项),但我认为这应该是其背后的想法。

来自 Android 文档:

公共(public) PopupMenu(上下文上下文, View anchor )

在 API 级别 11 中添加

构造一个新的 PopupMenu。

参数

context:弹出菜单的上下文。

anchor:此弹出窗口的 anchor View 。如果有空间,弹出窗口将出现在 anchor 下方;如果没有空间,则弹出窗口将出现在 anchor 上方。

关于java - Android 弹出菜单未锚定到操作栏上的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24181388/

相关文章:

java - 没有带有@Deprecated 注释的编译警告?

java - Eclipse 调试时跳行

java - 屏幕关闭时线程偶尔运行

html - 如何正确放置此按钮?

CSS技术使正方形在填充父容器的宽度时漂浮在网格中

java - 如何将当前数据库更改为另一个?

java - 使 log4j 可加性等于 true 或 false 的结果是什么?

java - JUnit中如何选择特定的数据提供者?

Android PendingIntent 将您带到一个已经存在的 Activity ?

CSS:两列