我有一个 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/