【问题标题】:How to add a view to WindowManager that appears below AlertDialog如何将视图添加到出现在 AlertDialog 下方的 WindowManager
【发布时间】:2018-09-11 05:03:14
【问题描述】:

我使用下面的代码将视图添加到 WindowManager(这是简短版本),但我想设置它出现在 AlertDialog 下方的窗口类型

Windowmanager mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);

WindowManager.LayoutParams.TYPE_PHONE

mWindowManager.addView(window, window.getLayoutParams());

【问题讨论】:

标签: android android-layout android-windowmanager


【解决方案1】:

你不能那样做,至少你不能这样想。

AlertDialogs 被添加到您的 Activity 的窗口中,而不是一个单独的窗口。将视图添加到 WindowManager 会将其添加到新窗口中。您不能将一个窗口“注入”到另一个窗口中。

可以这样做的一种方法是简单地将视图添加到您的活动中。将 Activity 的根设为 FrameLayout,然后将您的实际 Activity 布局放入该 FrameLayout 中。然后只需向该根 FrameLayout 添加一个视图。

【讨论】:

  • 谢谢 :) 但是在我的情况下,视图是基于 X , Y 坐标定位的,这就是为什么我必须首先使用 WindowManager,FrameLayout 和其他布局不提供这种能力,过去有一种布局可以提供这种能力,但现在已弃用。还有其他建议吗?
  • @Jack FraneLayouts 让您做到这一点。您只是不能在 XML 中定义坐标,而是使用 FraneLayout.LayoutParams 进行定位
  • 认真的吗?我马上就试一试,哦,伙计,那太好了,它会为我省去很多麻烦
猜你喜欢
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多