Я разрабатываю приложение Android v2.2.
У меня есть фрагмент .
В onCreateView(...)
обратном вызове моего класса фрагмента я раздуваю компоновку фрагмента, как показано ниже:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.login, null);
return view;
}
Приведенный выше разметочный файл (login.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Username" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Username" />
</LinearLayout>
Я хотел бы установить paddingTop
для вышеуказанного <LinearLayout>
элемента, и я хочу сделать это в коде Java, а не в XML.
Как установить , paddingTop
чтобы <LinearLayout>
в моем фрагменте кода класса Java ??
findViewById
и затем вызватьsetPadding
его.view
это уже LinearLayout, нет необходимости искать его снова в этом случае. Учитывая, что это особенный, хотя.Ответы:
view.setPadding(0,padding,0,0);
Это установит верхний отступ в
padding
-pixels.Если вы хотите установить его
dp
вместо этого, вы можете сделать преобразование :источник
float scale = getResources().getDisplayMetrics().density;
int size = (int) (sizeInPx*scale + 0.5f);
sizeInDp
на самом деле это количество пикселей, которые вы получаете при конвертацииsizeInPx
dps.Чтобы ответить на ваш второй вопрос:
как предложили SpK и Jave, установит отступ в пикселях. Вы можете установить его в dp, рассчитав значение dp следующим образом:
Надеюсь, это поможет!
источник
Если вы храните заполнение в файлах ресурсов, вы можете просто позвонить
Это делает преобразование для вас.
источник
Используя Kotlin и библиотеку android-ktx, вы можете просто
Смотрите документы здесь
источник
Вы можете установить отступы на ваш взгляд, запрограммировав весь код ниже -
И, также, есть другой доступный тип заполнения -
набивка
PaddingBottom
PaddingLeft
PaddingRight
PaddingTop
Эти ссылки будут ссылаться на сайт разработчиков Android. Надеюсь, это вам очень поможет.
источник
Использование
TypedValue
- намного более чистый способ преобразования в пиксели по сравнению с вычислением вручную:По сути,
TypedValue.applyDimension
преобразует требуемый отступ в пиксели соответствующим образом в зависимости от свойств отображения текущего устройства.Для получения дополнительной информации см .: TypedValue.applyDimension Docs .
источник
используйте метод ниже для динамического задания заполнения
Пример :
источник
Напишите следующий код, чтобы установить отступы, это может помочь вам.
Используйте
LinearLayout.LayoutParams
или вRelativeLayout.LayoutParams
соответствии с родительским макетом дочернего представленияисточник
источник
При заполнении программно преобразуйте в значения, связанные с плотностью, преобразовав пиксель в Dp.
источник