カスタムビューとレイアウトエディタ

アンドロイドでカスタムビューを作るときのお話

カスタムビューを作った時にレイアウトエディタでの表示がカッコよくならなくて
諦めたりしてませんかー?

isInEditMode()

http://developer.android.com/reference/android/view/View.html

これが便利!


Viewを継承してなんかのCustomViewを作るんですが、
ActivityのonCreateなんかで

public void onCreate() {
   new MyCustomView(this, param1, param2);
}

とか

myview = findViewById(R.id.my_custom_view);
myview.setMyParameter("hoge");

とかって処理をして、表示内容を変えたりすると思うんです。
何も渡さない時のデフォルトをコンストラクタで用意してもいいんですが、
その処理がそれなりに重いものだったりすると無駄がおおい、、、、

isInEditMode()

そんなときisInEditMode()で判断して、レイアウトエディタで表示するときにだけの処理なんかが書けるようになります!

myview = findViewById(R.id.my_custom_view);
if( isInEditMode() ){
   myview.setMyParameter("レイアウトエディタ表示");
}else{
   myview.setMyParameter(message);
}

みたいな?
こういうのちゃんとやっとくとプログラマとUIデザイナーとの分業もやりやすいです!?

参考:
http://www.united-bears.co.jp/blog/archives/402
http://to40.blog55.fc2.com/tb.php/29-4af5d637


トラックバックURL  -  http://mashi.exciton.jp/archives/117/trackback