gpt4 book ai didi

android - 为什么我的 EditText 复制/粘贴菜单在 EditText 下?如何更改弹出窗口的 z 顺序?

转载 作者:可可西里 更新时间:2023-11-01 18:47:47 52 4
gpt4 key购买 nike

注意

如果有人知道如何订购(z-order)通过 windowmanager 添加的 Windows,我也会接受答案,因为它会回答所有问题。实际上我只发现在 windowManager.addView(MyView) 之后立即执行 windowManager.removeView(MyView) 以将 View 放在另一个 View 之前,但这并不理想因为它在视觉上删除并添加了 View 。 android 中没有内置函数来进行如此简单的思考,这看起来很疯狂。


我创建了一个包含 EditText 的 View (线性布局)。我通过 WindowManager.addView (view, Layout_Params) 在 Activity 中添加这个 View ;

但我有一个问题,edittext 将生成的每个弹出窗口(如复制/过去菜单或单词建议菜单)将在其他 View 下,甚至在他们拥有的 EditText View 下(不在图片上,edittext 具有透明背景)

also something a little strange, the popup generate by the last EditText w生病了

enter image description here

enter image description here

enter image description here

我使用这些布局参数创建 View (即:LinearLayout):

protected WindowManager.LayoutParams createLayoutParams() {
WindowManager.LayoutParams p = new WindowManager.LayoutParams();
p.gravity = Gravity.LEFT | Gravity.TOP;
p.width = 0;
p.height = 0;
p.format = PixelFormat.TRANSLUCENT;
p.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED;
p.flags = NOT_FOCUSABLE_FLAGS;
// TYPE_APPLICATION allows for popups in browser windows (like edit menus)
p.type = WindowManager.LayoutParams.TYPE_APPLICATION;
p.token = null;

return p;
}

然后我像这样显示 View (只包含一个编辑文本):

    private final WindowManager mWindowManager;
mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

WindowManager.LayoutParams lp = createLayoutParams();
mWindowManager.addView(view, lp);

那么如何让弹出窗口连接到所有内容前面的 editText 呢?

这个问题也可能有点帮助(关于窗口 View 的 z 顺序):How work the z-order of view (ie: window) added via WindowManager?

最佳答案

这是预料之中的,如果你看到 DecorView 的文档,它会给你当前 View 的背景。

您正在做的是在 decorview 上启动操作栏,因此它会出现在后台。阅读这篇文章了解更多详情 http://www.curious-creature.com/2009/03/04/speed-up-your-android-ui/

要解决这个问题,您需要获取当前 View ,为此您可以使用查看 focusedView = (View) yourParentView.getFocusedChild();

关于android - 为什么我的 EditText 复制/粘贴菜单在 EditText 下?如何更改弹出窗口的 z 顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39561133/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com