相对布局中的自定义视图问题

Posted

技术标签:

【中文标题】相对布局中的自定义视图问题【英文标题】:Issue with custom views in Relative Layout 【发布时间】:2012-03-29 12:20:15 【问题描述】:

我使用LayoutParamsRelativeLayout 的屏幕上呈现了多个自定义视图。现在用户第一次触摸视图时它会增加它的大小,之后当用户再次点击该视图时,该视图应该会消失。现在的问题是当一个视图消失时,屏幕上的其他视图会改变它们的大小和位置。通过调试,我发现当我在LayoutParams 中将动态值作为宽度和高度传递时会发生这种情况。如果我选择静态,那么一切都很好。但是后来我无法增加视图的大小。我该如何解决这个问题?我也尝试将View.GONE 更改为View.INVISIBLE,但这也无济于事。

我在代码中创建所有视图并将它们放置在屏幕上。在我的 xml 中,我没有任何视图条目。我这样做是因为视图的初始大小应该是随机的。所以我创建视图并在LayoutParams(width, height) 中分配他的初始大小,然后使用topMarginleftMargin 将它们放置在屏幕上的不同位置。更多细节可以在这里找到:Custom object click issue in android

【问题讨论】:

请提供一些代码sn-p,以便更好地回答。 @Deva 代码太大,无法粘贴。 【参考方案1】:

没有看到任何代码的最佳猜测...听起来您正在使用 layout_weight,如果删除了一个视图,则具有 layout_weight 的其他视图将扩展以填充现在可用的空间。

【讨论】:

我没有使用layout_weight

以上是关于相对布局中的自定义视图问题的主要内容,如果未能解决你的问题,请参考以下文章

带有广告的自定义相对布局

从 XML 布局中的自定义视图中删除包前缀

故事板中的自定义表格视图单元格布局似乎无效

xml布局中的自定义视图不起作用

为啥堆栈视图中的自定义视图重叠?

UICollectionView 中的自定义布局