Created
September 16, 2019 07:29
-
-
Save uOOOO/227f7a4a13300c60faa789e8933fe079 to your computer and use it in GitHub Desktop.
Print android view hierarchy from root view
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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); | |
| } | |
| } | |
| } |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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}