Skip to content

Instantly share code, notes, and snippets.

@uOOOO
Created September 16, 2019 07:29
Show Gist options
  • Select an option

  • Save uOOOO/227f7a4a13300c60faa789e8933fe079 to your computer and use it in GitHub Desktop.

Select an option

Save uOOOO/227f7a4a13300c60faa789e8933fe079 to your computer and use it in GitHub Desktop.
Print android view hierarchy from root view
public static String getSpaces(int count) {
StringBuilder spaces = new StringBuilder();
for (int i = 0; i < count; i++) {
spaces.append(" ");
}
return spaces.toString();
}
public static View findRootView(View view) {
ViewParent viewParent = view.getParent();
if (viewParent instanceof ViewGroup) {
return findRootView((View) viewParent);
}
return view;
}
public static void printViewHierarchy(View view) {
printViewHierarchy(view, 0);
}
public static void printViewHierarchy(View view, int depth) {
Log.d(TAG, getSpaces(depth) + view);
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
View child = ((ViewGroup) view).getChildAt(i);
printViewHierarchy(child, depth + 1);
}
}
}
@uOOOO
Copy link
Author

uOOOO commented Sep 16, 2019

 D/MainActivity: DecorView@a852dda[MainActivity]
 D/MainActivity:   android.widget.LinearLayout{41cc607 V.E...... ........ 0,0-1080,1794}
 D/MainActivity:     android.view.ViewStub{f49220b G.E...... ......I. 0,0-0,0 #1020194 android:id/action_mode_bar_stub}
 D/MainActivity:     android.widget.FrameLayout{2a93446 V.E...... ........ 0,63-1080,1794}
 D/MainActivity:       androidx.appcompat.widget.FitWindowsLinearLayout{e93a688 V.E...... ........ 0,0-1080,1731 #7f070009 app:id/action_bar_root}
 D/MainActivity:         androidx.appcompat.widget.ViewStubCompat{a0508e8 G.E...... ......I. 0,0-0,0 #7f070014 app:id/action_mode_bar_stub}
 D/MainActivity:         androidx.appcompat.widget.ContentFrameLayout{8a6ea7a V.E...... ........ 0,0-1080,1731 #1020002 android:id/content}
 D/MainActivity:           androidx.constraintlayout.widget.ConstraintLayout{b9f5c9c V.E...... ........ 0,0-1080,1731 #7f070072 app:id/root}
 D/MainActivity:             android.widget.FrameLayout{116640f V.E...... ........ 0,0-1080,1731 #7f07003e app:id/fragment_container}
 D/MainActivity:               android.widget.FrameLayout{abd24e9 V.E...... ........ 0,0-1080,1731}
 D/MainActivity:                 android.widget.RelativeLayout{b4d7fb3 G.E...... ......I. 0,0-0,0 #7f07005d app:id/no_wifi_error_overlay}
 D/MainActivity:                   androidx.appcompat.widget.AppCompatTextView{84bab01 V.ED..... ......ID 0,0-0,0 #7f07005b app:id/no_wifi_error_hint}
 D/MainActivity:                   androidx.appcompat.widget.AppCompatButton{a184da6 VFED..C.. ......I. 0,0-0,0 #7f07005a app:id/no_wifi_error_button}
 D/MainActivity:                   androidx.appcompat.widget.AppCompatImageView{865d3e7 V.ED..... ......ID 0,0-0,0 #7f07005c app:id/no_wifi_error_icon}
 D/MainActivity:                 android.widget.RelativeLayout{45a1970 V.E...... ........ 0,0-1080,1731 #7f070057 app:id/no_devices_error_overlay}
 D/MainActivity:                   androidx.appcompat.widget.AppCompatTextView{595cb94 V.ED..... ........ 212,1470-868,1657 #7f070056 app:id/no_devices_error_hint}
 D/MainActivity:                   androidx.appcompat.widget.AppCompatTextView{d46f63d V.ED..... ........ 212,1109-868,1232 #7f070058 app:id/no_devices_error_status}
 D/MainActivity:                   android.widget.ProgressBar{66b9e32 V.ED..... ........ 437,804-642,1009 #7f070059 app:id/no_devices_progress}
 D/MainActivity:                 android.widget.ListView{137855d G.ED..C.. ......ID 0,0-1080,1731 #7f070044 app:id/hubs}
 D/MainActivity:   android.view.View{2b1c783 V.ED..... ........ 0,1794-1080,1920 #1020030 android:id/navigationBarBackground}
 D/MainActivity:   android.view.View{2ce0d00 V.ED..... ........ 0,0-1080,63 #102002f android:id/statusBarBackground}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment