プログラムで ImageView を作成しています:
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(50,50);
lp.setMargins(4,4,4,4);
ImageView color = new ImageView(this);
color.setLayoutParams(lp);
colorPicker.addView(color); //adding view to linearlayout
Log.i("X", "" + color.getX());
...
color's
経由で x 位置を取得しようとしていますcolor.getX()
が、何らかの理由で、マージンを考慮していないことを意味する0
代わりに返されます4
また、私が見つけたドキュメントでいくつかの検索を行った後、requestLayout()
これを解決するかもしれませんが、どちらも役に立ちません
public void setMargins (int left, int top, int right, int bottom)
余白をピクセル単位で設定します。新しいマージンが考慮されるように、requestLayout() を呼び出す必要があります。左右のマージンは、レイアウトの方向に応じて requestLayout() によってオーバーライドされる場合があります。
アップデート
color.getX()
onClickリスナー内で呼び出すと、期待どおり4が返されます