Урок 16. Программное создание экрана в андроид приложениях. LayoutParams | Android Studio
Вставка
- Опубліковано 16 жов 2024
- Как добавлять View на экран программно из java кода android приложения? На прошлых уроках мы строили наши приложения с помощью layout файлов компоновки - макетов экранов, где в xml виде описывали View-компоненты пользовательского интерфейса android-приложения. Этот способ достаточно удобный и наглядный, он позволяет уже на этапе создания экрана увидеть, как будет выглядеть наше приложение. Сегодня мы рассмотрим альтернативный способ добавления элементов на экран - непосредственно в java коде нашего приложения.
Программный способ создания экрана android приложения менее удобный в плане наглядности, однако в некоторых случаях может быть более уместным, например, когда требуется в процессе работы приложения динамически добавлять на экран много простых однотипных view-компонентов и управлять ними. Подробнее мы это рассмотрим на следующем уроке.
Весь плейлист: • Уроки по основам разра...
Скачать исходный код проекта: yadi.sk/d/1SBl...
Группа взаимопомощи Вконтакте для начинающих ANDROID разработчиков и программистов: www.fandroid.in...
Скачать видеоуроки: www.fandroid.in...
Поддержите наш проект: www.fandroid.in...
#android #AndroidStudio #startandroid
Этот урок более понятен чем 16 урок старый по эклипс, материал вроде тот-же но по итогу стало понятнее)
Пожалуйста, сделайте урок как сделать http get запрос и получить ответ (текст или json) в Android Studio. Спасибо.
Спасибо за уроки. Думаю многим они будут полезны.
Если знаешь java, то все очень понятно=) отличный способ лучше понять архитектуру android-приложения в принципе)
А можно ли создать активити не на весь экран?
Здравствуйте. Эмулятор видит только первый TextView, остальные объекты не видит. В чем ошибка?
+Volodimir Kulazhenko вторую вью видимо не поместили в контейнер методом АддВью !
+Volodimir Kulazhenko при создании lpView параметр должен быть WRAP_CONTENT
+Александр Орлов спасибо чувак
приветствую! Подскажите почему при создании кнопок, все кнопки подписаны в верхнем регистре, хотя setText с переменным, первая большая.textView с разным записывает. AS 3.2.1
btn.setTransformationMethod(null); Должно помочь, но согласен поведение по умолчанию не выглядит логичным.
Такая поблема:
Всё прописывал как показано в видео, но в эмуляторе показывает просто белый экран с фразой TextView.
Не могу разобраться в чем тут дело.
Help.
Почитал предыдущие коменты. Рзобрался))
Если параметры отступа задаются пикселями, не окажется ли это подводным камнем для прочих устройств, на которых приложение не тестировалось?
LoloKsyu все верно, лучше использовать dp
+Start Android А этим способом (как в уроке) можно использовать dp? Надо вызывать другой метод?
+JaffaTilk777 из кода только в пикселах! НО , можно пиксели перевести в ДП и работать с ними! как это сделать - нужно просто погуглить ! px to dp android ссылок будет достаточно !
Отличные уроки ... пожалуйста подскажите,
не могу разобраться, как в коде добавлять новые вью групп, Например: в методе setContent запускается LinerLayout с вью компонентами, дальше добавляю в коде ещё один LinerLayout с вью компонентами, но при запуске программы вью элементов вложенного LinerLayout не видно ???
public class MainActivity extends AppCompatActivity {
RadioButton rbLeft, rbCenter, rbRight;
LinearLayout linerLayout2;
EditText t1;
Button create, clear;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout mainLinerLayout = new LinearLayout(this);
mainLinerLayout.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
setContentView(mainLinerLayout,params1);
LinearLayout.LayoutParams radioParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
RadioGroup r = new RadioGroup(this);
r.setOrientation(LinearLayout.HORIZONTAL);
mainLinerLayout.addView(r,radioParams);
rbLeft = new RadioButton(this);
rbLeft.setText("Left");
rbCenter = new RadioButton(this);
rbCenter.setText("Center");
rbRight = new RadioButton(this);
rbRight.setText("Right");
r.addView(rbLeft);
r.addView(rbCenter);
r.addView(rbRight);
linerLayout2 = new LinearLayout(this);
linerLayout2.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
linerLayout2.setOrientation(LinearLayout.HORIZONTAL);
t1 = new EditText(this);
create = new Button(this);
clear = new Button(this);
t1.setWidth(1);
create.setWidth(1);
clear.setWidth(1);
linerLayout2.addView(t1);
linerLayout2.addView(create);
linerLayout2.addView(clear);
}
}
Ребят, скажите есть ли смысл сильно заострять внимание на данном способе. Так как он у меня получается, но занимает много времени и не совсем интуитивный.
Алексей Волков в андроид разработке 100% будут моменты когда тебе нужно будет изменять UI в RunTime, тоесть когда приложение работает, вот тут то и нужно кодить лейауты ,а не ИКСЕмЛить
Роман Варийчук Понял. Спасибо. Уже столкнулся с такими моментами)
Как задать ориентацию у LayoutParams ?
А как так работать только с ConstraintLayout ? Незнаю нужно ли заострять внимание на LinearLayout вроде он уже не актуален...
LinearLayout вполне актуален для простых экранов.
Точно также, создаешь объект ConstraintLayout, и работаешь уже с ним, по аналогии с LinearLayout в этом видео, плюс да, LinearLayout гораздо быстрее работает, чем ConstraintLayout
что это за код в protected void onCreate не могу повторить задание подсвечивается красным
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
+Віталій Пастух при создании проекта выбери макет Empty Activity
+Віталій Пастух Это тулбар, удали main_activity и content_activity, а также эти строки и программа запустится, однако без тулбара
+Віталій Пастух с API 22 ActionBar заменили на ToolBar, теперь этот код по умолчанию генерируется. FAB это иконка в виде кружка, обнови SDK до новой версии, 6.0.0, или android N(бета). Для старых проектов нужно будет в Grandle.build(файл в проекте) заменить версию на 23 api и внизу указать билд 22.0.0+ (номер версии можно найти в названии папки в папке с сдк из библиотеки support)
спс за урок
Thank you!!!
LeanerLayout leanerlayout = new LeanerLayout(this); // на что ссилаетса THIS ????????
+Назар Кулян www.linkex.ru/java/this.php
+Назар Кулян на Activity
У меня почему-то не выравнивает, что делать?
сравните код проекта с вашим
спасибо!!!!
я в xml привык ручками писать...
xml для статических объектов
лайк, если ты смотришь 31.12.2019 г.))
Эта писанина щас наверное вымерла
Ох это походу для настоящих бизонов, я так не вижу смысла извращаться с кодом чтобы потом запускать на устройстве и смотреть как это будет выглядеть. Уж проще макет создать, но кто я такой. Я всего лишь ленивый новичек
Послушал бы внимательно урок, "новичёк". Сказали же, что это вводный урок для динамического создания элементов. А ты говоришь лишь о макете статическом.