コード
こうです。あんまり階層が深いとスタックオーバーフローで死ぬと思います。
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 件のコメント:
コメントを投稿