Android:如何获取父视图的ID?
Android:如何获取父视图的ID?,android,Android,View.getRoot()返回View,因此我们可以通过使用getResourceName(View.getId())轻松确定哪个是根视图 View.getParent()..,虽然我希望它也会返回父对象View,但实际上只返回ViewParent的一个实例,该实例似乎没有多少有用的方法/字段。真糟糕 那么,有没有办法知道家长的ID?我相信视图的父视图也是视图,因此它应该有中间字段 我真想知道为什么谷歌不让View.getParent()只返回View。只有当视图之外的其他对象可能是父对象时,
View.getRoot()
返回View
,因此我们可以通过使用getResourceName(View.getId())
轻松确定哪个是根视图
View.getParent()
..,虽然我希望它也会返回父对象View
,但实际上只返回ViewParent
的一个实例,该实例似乎没有多少有用的方法/字段。真糟糕
那么,有没有办法知道家长的ID?我相信视图
的父视图也是视图
,因此它应该有中间字段
我真想知道为什么谷歌不让View.getParent()只返回
View
。只有当视图
之外的其他对象可能是父对象时,它才有意义。据我所知,它仅限于视图
及其子类。视图父对象
只是任何可以有子对象的视图实现的接口。大多数情况下,您返回的类都是视图组的实例,如LinearLayout
或RelativeLayout
。我不太清楚你说的“name”是什么意思,但是如果你想得到类名,你可以像往常一样:view.getParent().getClass().getName()
父视图不一定是视图的状态:
公共最终视图父对象getParent()
API级别1中添加的获取此视图的父级。请注意
父视图是视图父视图,不一定是视图
返回此视图的父级
但是,的所有实现都继承自视图
。这应该是一个设计决策,使用ViewParent
接口将父视图与视图解耦,尽管SDK中的所有实现都是视图。首先尝试强制转换它。例如,如果要获取id的视图的父视图是TableRow,则执行以下操作:
((TableRow)View.getParent()).getID()
View.getId()返回视图的名称和View.getClass().getName()重新运行视图类型的名称如果要获取ID,需要首先将其强制转换为视图组。请注意,它不是100%安全的,因为它也可以是一个ViewRootImpl
,尽管我怀疑您在实践中是否能做到这一点。所以((视图组)view.getParent()).getId()