我在 Android 上创建弹出菜单时遇到问题。实际上,我想动态加载弹出窗口,但是当我执行应用程序时,菜单位于屏幕之外并且没有锚定在按钮上......为什么?
这是一个易于理解的屏幕:
这是我用来创建弹出菜单的摘要代码:
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/