Android 按id查找列表项根视图
如何按id查找列表项的根视图 例如: 活动布局:Android 按id查找列表项根视图,android,android-layout,android-view,Android,Android Layout,Android View,如何按id查找列表项的根视图 例如: 活动布局: <LinearLayout android:id="@+id/activity_root"> <FrameLayout android:id="@+id/activity_2"> <FrameLayout android:id="@+id/activity_3"> <ListView android:id="@android:id/list" />
<LinearLayout android:id="@+id/activity_root">
<FrameLayout android:id="@+id/activity_2">
<FrameLayout android:id="@+id/activity_3">
<ListView android:id="@android:id/list" />
</FrameLayout>
</FrameLayout>
</LinearLayout>
列表项布局:
<RelativeLayout android:id="@+id/item_root">
<FrameLayout android:id="@+id/item_2">
<FrameLayout android:id="@+id/item_3">
<Button android:id="@+id/item_button" />
</FrameLayout>
</FrameLayout>
</RelativeLayout>
现在我需要添加一些按钮点击操作。我只有按钮视图。如何获取项目根视图?您可以使用
view.getParent()
要查找外部父视图,对于大多数外部视图,您需要调用一些并进行检查控制。尝试此递归函数
View getParent(View view, int targetId) {
System.out.println(view.getId() +" == "+ targetId);
if (view.getId() == targetId) {
return view;
}
View parentView = (View) view.getParent();
if (parentView == null) {
return null;
}
return getParent(parentView, targetId);
}
在onClick中,使用参数i.e view和call view.getRoot view获取根视图,但如果是列表视图,则可以执行以下操作,但将活动i.e activity.this传递给适配器,并按如下方式查找根视图:
mActivity.getWindow().getDecorView().findViewById(android.R.id.content)
非常感谢您的反馈。您有列表视图吗?为什么需要根视图?首先学习如何创建高效的布局(RelativeLayout FrameLayout按钮),然后查看您的adapter@nikis我想在单击按钮时添加一些动画。@pskink这是一个例子。我的代码中没有这些布局;而(v.getId()!=R.id.item_root){v=(视图)v.getParent();}?没有比这更好的了?