Android — Установите разные отступы для каждого направления с помощью одного оператора

#android #android-layout

#Android #android-layout

Вопрос:

В CSS можно установить разные отступы для верхнего, правого, нижнего и левого, используя следующий оператор в 1 строку:

 padding: 5px,10px,15px,5px;
  

Мне было интересно, есть ли способ сделать то же самое при реализации макета в Android XML. В настоящее время, чтобы достичь того же результата (используя dp вместо px ), я делаю это таким образом:

 android:paddingTop="5dp";
android:paddingRight="10dp";
android:paddingBottom="15dp";
android:paddingLeft="5dp";
  

Итак, есть ли способ выполнить вышеописанное в одной инструкции? Например:

 android:padding="5dp,10dp,15dp,5dp";
  

Ответ №1:

Да, но вы не можете сделать это в XML, но вы можете сделать это в своем Java-коде

 btn_submit.setPadding(5,10,7,8);
  

Комментарии:

1. Достаточно справедливо, но я бы не хотел устанавливать все остальное в xml и повторно сортировать в Java, чтобы установить отступы таким образом. Вот почему я надеялся, что будет XML-решение.

Ответ №2:

Вы можете сделать это на Java (и если вы хотите, чтобы ваши значения были в dp):

 float dp5 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics());
view.setPadding(dp5, dp5*2, dp5*3, dp5);