首页 > 解决方案 > 如何制作使用窗口管理器添加的通过视图

问题描述

我已经膨胀了一个视图,其中包含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" />

我还尝试使其背景颜色透明,但它下面的视图仍然不可点击,直到它上面的视图从屏幕上删除。在 Flags的帮助下也许可以做到这一点WindowManager.LayoutParams,但我找不到适合我需要的。

标签: androidandroid-layoutlayout-inflaterandroid-framelayoutandroid-windowmanager

解决方案


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

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


推荐阅读