setMargins と setPadding の違い

Posted by muchag | Android,困ったTT | 2011-01-22 (土) 17:21:38

setMarginssetPadding の違いは何だろう・・・と思った。

setMargins

ViewGroup.MarginLayoutParams クラスのメソッド。
Android Developers:setMargins

具体的には、以下のサブクラスにて利用。

  • FrameLayout.LayoutParams
  • LinearLayout.LayoutParams
  • RelativeLayout.LayoutParams
  • RadioGroup.LayoutParams
  • TableLayout.LayoutParams
  • TableRow.LayoutParams

具体的な利用法は setMargins 参照。

setPadding

View クラスのメソッド。
Android Developers:setPadding

具体的には Button などの各サブクラスで利用。

差異

で、結局違いは?

LinearLayout などのレイアウトものは setMargins で
レイアウトものの中に配置する View ものは setPadding かと思ったんだけど
あちこちのサイトを見ていると、どうもそうでもないらしい。

実際に私のテスト環境で

  1. LinearLayout layout=new LinearLayout(this);
  2. layout.setPadding(0, 400, 0, 0);

これがちゃんと機能しているし、逆に

  1. ImageButton imagebutton=new ImageButton(this);
  2. imagebutton.setPadding(90, 0, 90, 0);

これが機能しない。

LayoutParams クラスを通すか否かの差?

最初は、LinearLayout などのレイアウトものは setPadding で
レイアウトものの中に配置する View ものは setMargins かと思ったんだけど
そうでもないみたい。

宿題・・・。

Android,困ったTT | 2011-01-22 (土) 17:21:38 |

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment