web-dev-qa-db-ja.com

実行時にボタンにマージンを追加するにはどうすればよいですか?

LinearLayoutに複数のボタンを追加する必要があります。しかし、私はそれらのボタンを5px離して配置したいと思います。ボタンの余白を設定する方法が見つかりませんでした。何か案が?

12
Droid-Bird

Button要素のlayout_marginプロパティを使用します。それは機能しませんか?

<Button Android:layout_margin="5px" (...)/>

編集

Javaでボタンを作成する場合、LayoutParamsを使用してマージンなどを指定します。

Button button = new Button();
(....)
params = new LinearLayout.LayoutParams();
params.leftMargin = 5;
(set params as you need)
parent.addView(button, params);

使用するLayoutParamsは、ボタンを追加するレイアウトと一致する必要があります( http://developer.Android.com/reference/Android/view/ViewGroup.LayoutParams.html を参照)。 LinearLayoutの場合、LinearLayout.LayoutParamsを使用し、それに応じて* Marginフィールドを設定します。

19
njzk2

これを試して:

//Assuming your button is in a LinearLayout as stated
LinearLayout.LayoutParams params = myButton.getLayoutParams();
params.setMargins(0, 0, 0, 0) //left, top, right, bottom
myButton.setLayoutParams(params);
8
kcoppock
MarginLayoutParams params = (MarginLayoutParams) vector8.getLayoutParams();
params.width = 200; params.leftMargin = 100; params.topMargin = 200;
vector8.setLayoutParams(params);

使用タイプが必要:MarginLayoutParams

3
Lyusten Elder

このコードを使用して、実行時にマージンを設定します

  LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) btnContainer.getLayoutParams();
        params.setMargins(5, 50, 10, 0); //left, top, right, bottom
        view_whwre_set_margin.setLayoutParams(params);
0
John smith

ボタンにパディングを追加すると、問題も解決します。これをチェックしてください http://developer.Android.com/resources/tutorials/views/hello-formstuff.html#CustomButton

0
jsp