自定义 RelativeLayout 中子视图的索引

Posted

技术标签:

【中文标题】自定义 RelativeLayout 中子视图的索引【英文标题】:Index of child views in custom RelativeLayout 【发布时间】:2014-08-04 10:12:02 【问题描述】:

我想知道我的自定义RelativeLayout 中的子视图是如何绘制的,以便我可以使用getChildAt()(子视图在xml 中定义)。

特别是,我的布局包含 5 个这样的自定义布局,每个布局都包含许多子视图。我看到的大多数解决方案似乎都在使用findViewById()indexOfChild(),但是,由于每个具有相同 id 的子视图会出现 5 次,我不确定是否可以实现此方法。作为旁注,我还想知道索引是否是如何确定的,这样当我对自定义布局进行修改时,我就会知道如何调整索引。谢谢!

【问题讨论】:

【参考方案1】:

RelativeLayout 不会覆盖getChildAt,因此顺序是ViewGroup 中定义的顺序。 getChildAt的代码是

2914    public View getChildAt(int index) 
2915        try 
2916            return mChildren[index];
2917         catch (IndexOutOfBoundsException ex) 
2918            return null;
2919        
2920    

【讨论】:

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

将视图附加到Android中的自定义RelativeLayout

如何以编程方式将自定义 Java 视图类加载到 RelativeLayout

在RelativeLayout中部分绘制的自定义视图

RelativeLayout 没有正确更新自定义视图的宽度

以自定义垂直距离水平居中子视图|斯威夫特

使用自动布局垂直居中子视图