我有一个布局,我在其他应用程序上绘制,设置为match_parent以填充整个屏幕。在这个布局中,我有一个聊天头,可以拖动并点击以显示更多内容。通常我会将布局设置为wrap_content并仅占用我需要的屏幕空间,但Android SpringAnimations在没有大型父级的情况下无法正常工作。
我遇到的问题是我无法与我在其上绘制布局的背景进行交互。我以前曾尝试在XML中以编程方式将RelativeLayout root_container
设置为clickable: false
和focusable: false
,但我仍然无法点击任何其他内容。有没有一个解决方案,我的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);
谢谢你看看!
答案 0 :(得分:0)
通过一些研究,我发现由于它可能允许的各种恶意机会,这是不可能的。如果查看FLAG_NOT_TOUCHABLE
,则无法与其进行交互,如果您尝试发送触摸事件,则不会转到主屏幕。解决方案只是重构,因此父视图不会填充主屏幕。