コード
こうです。あんまり階層が深いとスタックオーバーフローで死ぬと思います。
public static void dumpViewTree(View v, String padding){ Log.d(TAG, padding + v.getClass().getName()); if(v instanceof ViewGroup){ ViewGroup g = (ViewGroup)v; for(int i = 0; i < g.getChildCount(); i++){ dumpViewTree(g.getChildAt(i), padding+" "); } } }
実行
試しにandroid.support.v4.app.ListFragmentのonCreateView()で自動的に生成されるViewをダンプしてみました。 こういう構造してたんですねー。27152 Util D android.widget.FrameLayout 27152 Util D android.widget.LinearLayout 27152 Util D android.widget.ProgressBar 27152 Util D android.widget.FrameLayout 27152 Util D android.widget.TextView 27152 Util D android.widget.ListView
まとめ
デバッグとか動的にView書き換えてる場合とかAPIが勝手に生成するViewについて調べるのに使えるのではないでしょうかー。
0 件のコメント:
コメントを投稿