Как добавить маржу для кнопки во время выполнения? - PullRequest
11 голосов
/ 17 августа 2011

Мне нужно добавить более одной кнопки на LinearLayout.Но я хочу поместить эти кнопки, скажем, в 5 пикселей.Я не мог найти способ установить поле для кнопки.Есть идеи?

Ответы [ 5 ]

19 голосов
/ 17 августа 2011

Используйте свойство layout_margin элемента button. Разве это не работает?

<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.

8 голосов
/ 17 августа 2011

Попробуйте это:

//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);
3 голосов
/ 24 марта 2014
MarginLayoutParams params = (MarginLayoutParams) vector8.getLayoutParams();
params.width = 200; params.leftMargin = 100; params.topMargin = 200;
vector8.setLayoutParams(params);

Нужно использовать тип: MarginLayoutParams

0 голосов
/ 25 февраля 2015

используйте этот код для установки маржи во время выполнения

  LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) btnContainer.getLayoutParams();
        params.setMargins(5, 50, 10, 0); //left, top, right, bottom
        view_whwre_set_margin.setLayoutParams(params);
0 голосов
/ 17 августа 2011

Добавление отступов к кнопкам также решит вашу проблему.Проверьте это http://developer.android.com/resources/tutorials/views/hello-formstuff.html#CustomButton

...