【问题标题】:How to make a Pass through View which is added using window manager如何制作使用窗口管理器添加的通过视图
【发布时间】:2021-03-04 13:55:04
【问题描述】:

我已经扩展了一个视图,其中包含 Constraint Layout 作为父布局,并在其中包含 Frame Layout(其尺寸将在运行时进行调整以达到特定的高度和宽度)。

我需要使用窗口管理器将这个视图添加到当前屏幕,我也成功了,但问题是它不允许点击它下面的视图。

这是我的框架布局的样子

<FrameLayout
    android:id="@+id/input_box"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:clickable="false"
    android:focusable="false"
    android:background="@drawable/bg_input_pointer"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

我还尝试将其背景颜色设置为透明,但它下方的视图仍然无法点击,直到它上方的视图从屏幕上移除。在 WindowManager.LayoutParams 标志的帮助下也许可以做到这一点,但我找不到适合我需要的。

【问题讨论】:

  • 添加如何添加视图的代码 sn-p。在这种情况下,标志很关键,最值得注意的是您需要设置FLAG_NOT_TOUCHABLE 以确保您的视图不会消耗触摸。

标签: android android-layout layout-inflater android-framelayout android-windowmanager


【解决方案1】:

确保在框架布局下方的视图中使用view.bringToFront()。这是因为框架布局可能会拉伸并覆盖下面的视图,但不会,尽管它可能不会向下推。

//NB视图指的是下面的视图

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    • 2014-05-20
    相关资源
    最近更新 更多