- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 Android API11+ 中,我在 PopupWindow 中显示一个按钮。我想在单击按钮时显示 PopupMenu,而不关闭 PopupWindow。这可能吗?我正在实例化和初始化 PopupMenu,但是当我调用 popupMenu.show()我收到此错误(LogCat + 部分调用堆栈):
02-25 13:31:38.281: W/WindowManager(528): 尝试添加带有子窗口 token 的窗口:android.os.BinderProxy@41316cc8。中止。02-25 13:31:51.257: D/AndroidRuntime (7643): 关闭虚拟机02-25 13:31:51.257: W/dalvikvm(7643): threadid=1: 线程以未捕获的异常退出 (group=0x40a711f8)02-25 13:31:51.320: E/AndroidRuntime(7643): 致命异常: main02-25 13:31:51.320: E/AndroidRuntime(7643): android.view.WindowManager$BadTokenException: 无法添加窗口—— token android.view.ViewRootImpl$W@419c3458 无效;你的 Activity 在运行吗?[堆栈的其余部分]
这是因为 PopupMenu 使用了另一个 PopupWindow,而 PopupWindow 似乎不允许使用 PopupWindow 吗?当我将它连接到 Activity 内容 View 中的按钮时,相同的代码运行正常。
提前致谢
最佳答案
您不能从 PopupWindow View 锚定 PopupMenu 您可以做的是从行 View 或顶层 View 内的 View 定义或锚定这里是一个示例:
主.xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/IVoptionsMenuInvis"
android:layout_width="match_parent"
android:layout_height="52dp"
android:layout_gravity="center_horizontal"
android:layout_weight="25"
android:paddingBottom="6dp"
android:paddingTop="6dp">
</FrameLayout>
弹出窗口.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/settingseditback"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/IVoptionsMenu"
android:layout_width="match_parent"
android:layout_height="52dp"
android:layout_gravity="center_horizontal"
android:layout_weight="25"
android:onClick="showSettingsPopup2"
android:paddingBottom="6dp"
android:paddingTop="6dp"
android:src="@drawable/ic_actionbar_overflow_dark" />
</LinearLayout>
最后是您的 MainActivity.java:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
.
.
.
public void showSettingsPopup2(View v) {
PopupMenu popup = new PopupMenu(MainActivity.this, findViewById(R.id.IVoptionsMenuInvis));
popup.setOnMenuItemClickListener(this);
popup.getMenuInflater().inflate(R.menu.main, popup.getMenu());
popup.show();
}
}
关于android - PopupWindow 上的 View 可以显示 PopupMenu 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067184/
我希望在 XPage 中有一个右键单击弹出菜单。因此,我使用扩展库在 XPages 中创建了一个弹出菜单。无论我尝试什么,菜单都不显示。我必须将它绑定(bind)到一个按钮吗?如果是,怎么办?? 最佳
我希望在 XPage 中有一个右键单击弹出菜单。因此,我使用扩展库在 XPages 中创建了一个弹出菜单。无论我尝试什么,菜单都不显示。我必须将它绑定(bind)到一个按钮吗?如果是,怎么办?? 最佳
我创建了一个 ListView有一个 PopupMenu在每个项目中。我创建了一个 menu layout并将其用作我的PopupMenu .我的问题是每次单击 ListView 项目中的省略号选项时
我正在制作一个应用程序,我希望在 java 弹出菜单(如下所示)中为启动时运行的选项添加一个复选框。 弹出菜单如下:/image/JLZQE.jpg 如何将“启动时运行”选项设为复选框。 最佳答案 看
我在不断重新绘制的框架上使用 AWT PopupMenu(这是一个游戏),但每当 PopupMenu 显示时,父框架就会卡住。有办法禁用这个吗? 最佳答案 我假设应用程序的其余部分是用 Swing 制
我正在尝试寻找如何将项目添加到 devExpress PopupMenu。我尝试了以下方法: manager = new BarManager(); listBoxMe
我有一个 XML 菜单: 我想向 orders_filter_messages_group 添加一些项目,所以我这样做了
我已经创建了更改弹出菜单背景颜色的样式,现在我还需要知道如何更改菜单项文本颜色。下面是我使用的样式 @style/PopupMenu @color/popup_menu_bg_c
我想在 android 中自定义 popupmenu,默认的弹出菜单提供了更多空间,所以我试图更改弹出菜单中的自定义布局,但我不知道该怎么做。 注意:我想做这个小的弹出式设计,所以我使用默认的弹出式菜
我有一个 listView,其中每个项目都有一个按钮,可以打开带有选项的 PopupMenu。 大多数时候,这些菜单在错误的位置打开(有时它们在正确的位置打开),这些随机打开甚至不一致。 在菜单中选择
我有一个 PopupMenu,用户可以在其中切换启用或不启用哪些项目。 但是,每次用户按下一个按钮时,菜单就会消失。 是否有解决此问题的方法? 应要求,这是我目前正在使用的代码: final P
根据 How to style PopupMenu?你不能直接设置弹出菜单样式,这似乎与https://developer.android.com/reference/android/widget/P
在 Android API 23 中,我有一个带有子菜单项的弹出菜单。我把重力定义到最后,如图 popupMenu = new PopupMenu(this, v, Gravity.END); pop
我有一个 MaterialApp与 TextField s,它们有默认的弹出菜单(带有“剪切”、“复制”和“粘贴”项)。 我的问题是:他们的文字颜色总是白色 - 所以这些项目都是不可见的,因为我的背景
NSStatusItem.popUpMenu 已在 macOS 10.14 中弃用,但我找不到一个不错的替代方案。 let m = statusItem.menu! statusItem.popUpM
我有一个 VCL 控件,但我没有该控件的源,该控件没有 PopupMenu 属性和关联的事件。我怎样才能添加这个? 该控件(根据文档)继承自 TCustomControl,而 TCustomContr
我有一个带有子菜单的弹出菜单,一次只能检查一项。据我尝试,GroupIndex 和 RadioItem 属性在各自的子菜单之外不起作用。 我找到了this piece of code检查 PopupM
当选择未设置 PupupMenu 属性的 TDBEdit 控件并单击鼠标右键时,Delphi 5(是的,我知道它很旧)和 Delphi 10.1 之间的行为似乎有所变化。在 Delphi 5 TDBE
有没有办法在 PopupMenu 中渲染像 JPanel 一样的图形(使用 TrayIcon)?我知道使用 JPopupMenu 是可能的,但我不喜欢如果我单击弹出窗口外部,弹出窗口不会关闭(并且图标
现在我正在尝试使用 Android 3.0 (API 11) ECLIPSE 做另一个弹出式项目。但我有错误。无法实例化类型 PopupMenu.OnMenuItemClickListener Mai
我是一名优秀的程序员,十分优秀!