РЕДАКТИРОВАТЬ: более общий способ сделать это, который не зависит от типа макета (кроме того, что это тип макета, который поддерживает поля):
public static void setMargins (View v, int l, int t, int r, int b) {
if (v.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
p.setMargins(l, t, r, b);
v.requestLayout();
}
}
Вы должны проверить документы для TextView .По сути, вам нужно получить объект TextView LayoutParams, изменить поля, а затем вернуть его обратно в TextView.Предполагая, что он находится в LinearLayout, попробуйте что-то вроде этого:
TextView tv = (TextView)findViewById(R.id.my_text_view);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)tv.getLayoutParams();
params.setMargins(0, 0, 10, 0); //substitute parameters for left, top, right, bottom
tv.setLayoutParams(params);
Я не могу проверить это прямо сейчас, поэтому мое приведение может быть немного отключено, но LayoutParams - это то, что нужно изменить, чтобы изменитьполе.
ПРИМЕЧАНИЕ
Не забывайте, что если ваш TextView находится внутри, например, RelativeLayout , следуетиспользуйте RelativeLayout.LayoutParams вместо LinearLayout.LayoutParams