AndroidのView階層を再帰的に表示する方法。View階層がひと目で分かります。\(^o^)/
public void dumpViewStructure(View view){
dumpViewStructure(view, 0);
}
public void dumpViewStructure(View view, int depth){
String string = "";
for (int i = 0; i < depth; i++) {
string = string.concat("-");
}
System.out.println(string + "" + view.getClass().getName());
if(ViewGroup.class.isAssignableFrom(view.getClass())){
ViewGroup vg = (ViewGroup)view;
for(int i = 0; i < vg.getChildCount(); i++){
View child = vg.getChildAt(i);
this.dumpViewStructure(child, depth + 1);
}
}
}
dumpViewStructure(view, 0);
}
public void dumpViewStructure(View view, int depth){
String string = "";
for (int i = 0; i < depth; i++) {
string = string.concat("-");
}
System.out.println(string + "" + view.getClass().getName());
if(ViewGroup.class.isAssignableFrom(view.getClass())){
ViewGroup vg = (ViewGroup)view;
for(int i = 0; i < vg.getChildCount(); i++){
View child = vg.getChildAt(i);
this.dumpViewStructure(child, depth + 1);
}
}
}
実行結果例
10-11 02:57:32.849: I/System.out(2115): android.widget.LinearLayout
10-11 02:57:32.859: I/System.out(2115): -android.widget.TextView
10-11 02:57:32.869: I/System.out(2115): -android.widget.TextView
10-11 02:57:32.869: I/System.out(2115): -android.widget.TextView
10-11 02:57:32.869: I/System.out(2115): -android.widget.LinearLayout
10-11 02:57:32.869: I/System.out(2115): --android.widget.TextView
10-11 02:57:32.869: I/System.out(2115): -android.widget.LinearLayout
10-11 02:57:32.869: I/System.out(2115): --android.widget.TextView
10-11 02:57:32.869: I/System.out(2115): -android.widget.LinearLayout
10-11 02:57:32.869: I/System.out(2115): --android.widget.TextView
10-11 02:57:32.859: I/System.out(2115): -android.widget.TextView
10-11 02:57:32.869: I/System.out(2115): -android.widget.TextView
10-11 02:57:32.869: I/System.out(2115): -android.widget.TextView
10-11 02:57:32.869: I/System.out(2115): -android.widget.LinearLayout
10-11 02:57:32.869: I/System.out(2115): --android.widget.TextView
10-11 02:57:32.869: I/System.out(2115): -android.widget.LinearLayout
10-11 02:57:32.869: I/System.out(2115): --android.widget.TextView
10-11 02:57:32.869: I/System.out(2115): -android.widget.LinearLayout
10-11 02:57:32.869: I/System.out(2115): --android.widget.TextView