2014/04/23

[Android]FrameLayoutでMarginを指定して絶対配置を行う

一時的な View を任意の位置に配置したかったので
プログラムから配置しようと思ったら
いまいち上手く行かなかったのでメモしておきます。

どうやら MarginLayoutParams を使うのがミソだったみたい。
ViewGroup.MarginLayoutParams | Android Developers

というわけで任意の位置・サイズで FrameLayout に表示するコードです。
MarginLayoutParams params = (MarginLayoutParams)childView.getLayoutParams();
params.width = w;
params.height = h;
params.setMargins(x, y, 0, 0);
childView.setLayoutParams(params);
frameLayout.addView(childView);
参考: Local Wisdom Setting Margin in a FrameLayout Programmatically | Local Wisdom

タグ(RSS)