我有一个布局,可以在其他应用程序上绘制,该应用程序设置为 match_parent 以填充整个屏幕。在这个布局中,我有一个聊天头,可以拖动它并单击以显示更多信息。通常我会将布局设置为 wrap_content 并只占用我需要的屏幕空间,但如果没有大的父级来让我的聊天头投入其中,Android SpringAnimations 就无法工作。
我遇到的问题是我无法与在其上绘制布局的背景进行交互。我之前尝试过以编程方式将 RelativeLayout 设置为root_container
XMLclickable: false
和focusable: false
XML,但我仍然无法单击其他任何内容。有没有一种解决方案,我root_container
不会注册点击,但我的聊天头可以继续?
我觉得这个问题与其他无法聚焦/无法点击的问题不同,因为它涉及“绘制其他应用程序”功能,这可能会改变我不知道的事情。
<!--Root container - Causing the problems with elements beneath it-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--Small Chat head view that can be dragged around root_container-->
<RelativeLayout
android:id="@+id/collapse_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:orientation="vertical"
android:visibility="visible">
<ImageView
android:id="@+id/floating_icon"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/floating_icon"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/close_button"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginLeft="40dp"
android:src="@drawable/ic_close"
tools:ignore="ContentDescription" />
</RelativeLayout>
</RelativeLayout>
编辑:我在这样的服务中调用我的布局:
mFloatingView = LayoutInflater.from(this).inflate(R.layout.layout_floating_view, null);
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
mWindowManager.addView(mFloatingView, params);
谢谢参观!