在Activity.OnContentChanged中,我想迭代所有控件以查看其标签。
我认为它与base.Window.HasChildren有关,但我无法弄清楚如何真正让孩子们接受。
编辑:ViewGroup是大多数布局的基类,具有GetChildCount和GetChildAt。但我仍然无法弄清楚如何从Activity到root级别的布局。
答案 0 :(得分:3)
您可以为布局的根元素分配ID,并通过以下方式访问它:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Root"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="1"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="2"/>
</LinearLayout>
然后在您的活动中,您可以执行以下操作:
var root = FindViewById<LinearLayout>(Resource.Id.Root);
for (int i = 0; i < root.ChildCount; i++)
{
Console.WriteLine(root.GetChildAt(i).Id);
}
答案 1 :(得分:0)
var viewGroup = this.Window.DecorView as ViewGroup;
if(viewGroup != null){
for (int i = 0; i < view.ChildCount; i++)
{
var control = view.GetChildAt(i);
}
}