0
ループ内で複数のImageViewをダイナミックに作成しています。 すべてのImageViewの位置と画像が異なります。Android複数のImageViewをループで作成...奇妙な動作
最後に、それらをFrameLayoutに追加します。
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(container.getWidth()/3, container.getHeight()/3);
ImageView imageView;
for(int i=0; i<cloths.size(); i++) {
imageView = new ImageView(getActivity(), null);
imageView.setAdjustViewBounds(true);
Glide.with(getActivity()).load(cloths.get(i).getImage()).into(imageView);
imageView.setOnTouchListener(touchListener);
params.leftMargin = (int) cloths.get(i).getxPos(container.getWidth());
params.topMargin = (int) cloths.get(i).getyPos(container.getHeight());
params.rightMargin = 0;
params.bottomMargin = 0;
imageView.setScaleY(cloths.get(i).getScale());
imageView.setScaleX(cloths.get(i).getScale());
container.addView(imageView, params);
}
の代わりにすべて正しくimageviewsを配置、それらはすべて、最後のImageViewの位置の上で互いの上に敷設されています。
任意のアイデアはどのようにそれを修正するには? 何が間違っていますか?
異なるマージンのImageViewごとに同じ 'params'を使用します。なぜFrameLayoutを使用していますか? FrameLayoutは9つの位置にビューを保存できます。ビューの位置を変更するには、マージンを変更するのは適切ではありません。 –
ImageViewsはDrag&Dropが可能なので、私はFrameLayoutを使用します! 余白は、コンテナにイメージビューを追加するときの開始マージンにすぎません! – Chrissss
しかし、私に解決策を教えてくれました... すべてのループ実行で新しいパラメータを作成するのが解決策でした! – Chrissss