×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Java
Posted by: Pascal Surget
Added: Sep 16, 2018 1:13 AM
Views: 3397
Tags: android
  1. package de.openminds.android.util;
  2.  
  3. import android.util.Log;
  4. import android.view.View;
  5. import android.view.ViewGroup;
  6.  
  7. public class HierarchicalViewIdViewer {
  8.  
  9.         public static View debugViewIds(View view, String logtag) {
  10.                 Log.v(logtag, "traversing: " + view.getClass().getSimpleName() + ", id: " + view.getId());
  11.                 if (view.getParent() != null && (view.getParent() instanceof ViewGroup)) {
  12.                         return debugViewIds((View)view.getParent(), logtag);
  13.                 }
  14.                 else {
  15.                         debugChildViewIds(view, logtag, 0);
  16.                         return view;
  17.                 }
  18.         }
  19.  
  20.         private static void debugChildViewIds(View view, String logtag, int spaces) {
  21.                 if (view instanceof ViewGroup) {
  22.                         ViewGroup group = (ViewGroup)view;
  23.                         for (int i = 0; i < group.getChildCount(); i++) {
  24.                                 View child = group.getChildAt(i);
  25.                                 Log.v(logtag, padString("view: " + child.getClass().getSimpleName() + "(" + child.getId() + ")", spaces));
  26.                                 debugChildViewIds(child, logtag, spaces + 1);
  27.                         }
  28.                 }
  29.         }
  30.  
  31.         private static String padString(String str, int noOfSpaces) {
  32.                 if (noOfSpaces <= 0) {
  33.                         return str;
  34.                 }
  35.                 StringBuilder builder = new StringBuilder(str.length() + noOfSpaces);
  36.                 for (int i = 0; i < noOfSpaces; i++) {
  37.                         builder.append(' ');
  38.                 }
  39.                 return builder.append(str).toString();
  40.         }
  41.  
  42. }