Динамические поля в линейном макете
При разработке Android макеты играют решающую роль в организации и отображении элементов пользовательского интерфейса. Общим требованием к макетам является возможность указывать поля между элементами. Хотя XML предоставляет интуитивно понятный способ определения полей, разработчикам может потребоваться программное создание макетов для обеспечения гибкости или обработки динамического контента.
В этом вопросе рассматривается, как программно добавлять поля к кнопкам в LinearLayout. Предоставленный код успешно создает LinearLayout с вертикально выровненными кнопками, охватывающими весь экран, с помощью LinearLayout.LayoutParams. Однако установка полей между кнопками с помощью LinearLayout.MarginLayoutParams оказалась сложной задачей из-за отсутствия элемента веса.
Решение заключается в использовании метода setMargins() объекта LinearLayout.LayoutParams. Этот метод позволяет указывать поля в пикселях для верхнего, правого, левого и нижнего краев представления.
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(30, 20, 30, 0);
Button okButton=new Button(this);
okButton.setText("some text");
ll.addView(okButton, layoutParams);
В этом коде LinearLayout создается с вертикальной ориентацией. Затем инициализируется экземпляр LinearLayout.LayoutParams, определяющий ширину и высоту кнопок. Метод setMargins() вызывается для установки значений пикселей для желаемых полей, что в данном случае приводит к верхнему и левому полям по 30 пикселей и нижнему полю по 20 пикселей.
Наконец, создается кнопка, которой присваивается текстовая метка, и добавлен в LinearLayout с настроенным макетомParams. Этот подход программно определяет поля между кнопками, обеспечивая постоянный интервал и правильное расположение внутри LinearLayout.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3