0

以下のコードを使用して画像ビューをFrameLayout内の余白20,10で右下に揃えますが、左上に表示されます。間違っていますか?FrameLayoutの右下に画像ビューを揃えます

ViewGroup.MarginLayoutParams marginParams = new ViewGroup.MarginLayoutParams(refreshBtn.getLayoutParams()); 
    marginParams.setMargins(0, 0, 20, 10); 
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(marginParams); 
layoutParams.gravity=Gravity.RIGHT|Gravity.BOTTOM; 
refreshBtn.setLayoutParams(layoutParams); 
+0

はあなたのコードの多くを投稿してもらえますか?具体的には、作業しているxml? – FabioR

答えて

0

問題はレイアウトの重力を変更していることです。つまり、右下隅にFrameLayoutを配置しているということです。しかし、FrameLayoutが画面全体を塗りつぶしている可能性があります。この場合、レイアウトの重力は実際には何も変わりません。引き出しに完全に収まる本を想像してみてください。どんなにあなたが引き出しを持っていても、本はその中を動かない。

あなたがしなければならないことは、FrameLayout自体の "setGravity()"メソッドを使用することです。これにより、FrameLayout内の実際の重力が変更されます。

出典: How to set both gravity and layout gravity of a LinearLayout programatically

+0

私のframelayoutは多くのビューで構成されており、この画像ビューのみを右下に配置したい –

+0

ImageViewをプログラマチックに右下に配置してもよろしいですか? XMLを使用すると、右下隅に配置する方が簡単です。 – IPat

+0

はい私は余裕をpogrammaticallyに変更する必要があります –

関連する問題