android - 平移、缩放或旋转的 subview 消失

标签 android android-layout

我有一个 ViewGroup,我正在向它添加 subview ,如下所示:

mViewGroup.addView(view, new LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT));

(WRAP_CONTENT 对于 onclicklistener 按预期工作很重要)。

到目前为止一切顺利,但后来我通过覆盖它们的 onDraw 方法或通过覆盖 ViewGroups 动态移动 subview :

protected boolean getChildStaticTransformation(View child, Transformation t)

问题是,如果 children 被移到他们原来的区域之外,他们就会消失,这似乎是在第一次添加时计算出来的。我尝试调用 setClipChildren(false); 但没有成功。

我可以通过在添加 subview 时使用 LayoutParams.FILL_PARENT 来解决问题,但在这种情况下,onClickListener 会对整个 ViewGroup 上的任何点击使用react 并且我希望它只对我转换后的 subview 所在的特定区域的点击使用react。

也许我仍然可以使用 LayoutParams.FILL_PARENT 如果有一种方法可以定义 View 的可点击区域应该在哪里。

有什么建议吗?

最佳答案

也许您应该尝试使用 subview 的边距和填充。否则,您可以尝试使用不同的 ViewGroup 布局,例如 FrameLayout,其中每个 View 的位置都可以通过其边距设置。

关于android - 平移、缩放或旋转的 subview 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973606/

相关文章:

android - DrawerLayout - 异常调度输入事件

android - 多个 Activity 的 ViewPager

android - 在 fragment 上调用 ​​onClickListener 的正确方法

java - android - 倒计时器没有取消

android - 如何从 Android 中的 ClusterManager Google Maps V2 获取集群?

android - 如何使应用程序中的字体大小不受更改设置字体大小的影响

java - 当我滚动时,RecyclerView 设置了错误的项目高度

android - 如何判断应用程序是否在其 list 中使用了某些权限?

android - 图片无法在android中的服务器上上传

android - 迁移到 Jetpack/AndroidX 后出现 InflateException