Урок 16. Программное создание экрана в андроид приложениях. LayoutParams | Android Studio

  Рет қаралды 62,743

Start Android

Start Android

9 жыл бұрын

Как добавлять View на экран программно из java кода android приложения? На прошлых уроках мы строили наши приложения с помощью layout файлов компоновки - макетов экранов, где в xml виде описывали View-компоненты пользовательского интерфейса android-приложения. Этот способ достаточно удобный и наглядный, он позволяет уже на этапе создания экрана увидеть, как будет выглядеть наше приложение. Сегодня мы рассмотрим альтернативный способ добавления элементов на экран - непосредственно в java коде нашего приложения.
Программный способ создания экрана android приложения менее удобный в плане наглядности, однако в некоторых случаях может быть более уместным, например, когда требуется в процессе работы приложения динамически добавлять на экран много простых однотипных view-компонентов и управлять ними. Подробнее мы это рассмотрим на следующем уроке.
Весь плейлист: • Уроки по основам разра...
Скачать исходный код проекта: yadi.sk/d/1SBl0Xl8hbDoq
Группа взаимопомощи Вконтакте для начинающих ANDROID разработчиков и программистов: www.fandroid.info/gruppa-vzaim...
Скачать видеоуроки: www.fandroid.info/skachat-vide...
Поддержите наш проект: www.fandroid.info/spasibo-za-v...
#android #AndroidStudio #startandroid

Пікірлер: 44
@user-cl3zl9sb4w
@user-cl3zl9sb4w 4 жыл бұрын
Этот урок более понятен чем 16 урок старый по эклипс, материал вроде тот-же но по итогу стало понятнее)
@user-ru6fq6nn5q
@user-ru6fq6nn5q 8 жыл бұрын
Спасибо за уроки. Думаю многим они будут полезны.
@al251251
@al251251 8 жыл бұрын
спс за урок
@bufferforrnbtaxi5984
@bufferforrnbtaxi5984 5 жыл бұрын
Если знаешь java, то все очень понятно=) отличный способ лучше понять архитектуру android-приложения в принципе)
@mugen31337
@mugen31337 9 жыл бұрын
спасибо!!!!
@ThePsychoSpy
@ThePsychoSpy 9 жыл бұрын
Пожалуйста, сделайте урок как сделать http get запрос и получить ответ (текст или json) в Android Studio. Спасибо.
@user-dx8xp3im8s
@user-dx8xp3im8s 3 жыл бұрын
Thank you!!!
@aleksandrgaziev4470
@aleksandrgaziev4470 6 жыл бұрын
А можно ли создать активити не на весь экран?
@user-xg8in6ek1s
@user-xg8in6ek1s 8 жыл бұрын
Как задать ориентацию у LayoutParams ?
@yaroslavk8380
@yaroslavk8380 5 жыл бұрын
приветствую! Подскажите почему при создании кнопок, все кнопки подписаны в верхнем регистре, хотя setText с переменным, первая большая.textView с разным записывает. AS 3.2.1
@MrRakushin
@MrRakushin 3 жыл бұрын
btn.setTransformationMethod(null); Должно помочь, но согласен поведение по умолчанию не выглядит логичным.
@user-yk5ip2te2e
@user-yk5ip2te2e 7 жыл бұрын
Отличные уроки ... пожалуйста подскажите, не могу разобраться, как в коде добавлять новые вью групп, Например: в методе 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); } }
@LoloKsyu
@LoloKsyu 9 жыл бұрын
Если параметры отступа задаются пикселями, не окажется ли это подводным камнем для прочих устройств, на которых приложение не тестировалось?
@start_android
@start_android 9 жыл бұрын
LoloKsyu все верно, лучше использовать dp
@JaffaTilk777
@JaffaTilk777 8 жыл бұрын
+Start Android А этим способом (как в уроке) можно использовать dp? Надо вызывать другой метод?
@romanvariichuk6795
@romanvariichuk6795 8 жыл бұрын
+JaffaTilk777 из кода только в пикселах! НО , можно пиксели перевести в ДП и работать с ними! как это сделать - нужно просто погуглить ! px to dp android ссылок будет достаточно !
@Maramusta
@Maramusta 7 жыл бұрын
Такая поблема: Всё прописывал как показано в видео, но в эмуляторе показывает просто белый экран с фразой TextView. Не могу разобраться в чем тут дело. Help.
@Maramusta
@Maramusta 7 жыл бұрын
Почитал предыдущие коменты. Рзобрался))
@olenakulazhenko1558
@olenakulazhenko1558 8 жыл бұрын
Здравствуйте. Эмулятор видит только первый TextView, остальные объекты не видит. В чем ошибка?
@romanvariichuk6795
@romanvariichuk6795 8 жыл бұрын
+Volodimir Kulazhenko вторую вью видимо не поместили в контейнер методом АддВью !
@flamedoer8061
@flamedoer8061 8 жыл бұрын
+Volodimir Kulazhenko при создании lpView параметр должен быть WRAP_CONTENT
@dastanomirgali2296
@dastanomirgali2296 8 жыл бұрын
+Александр Орлов спасибо чувак
@bernish
@bernish 6 жыл бұрын
А как так работать только с ConstraintLayout ? Незнаю нужно ли заострять внимание на LinearLayout вроде он уже не актуален...
@start_android
@start_android 6 жыл бұрын
LinearLayout вполне актуален для простых экранов.
@bufferforrnbtaxi5984
@bufferforrnbtaxi5984 5 жыл бұрын
Точно также, создаешь объект ConstraintLayout, и работаешь уже с ним, по аналогии с LinearLayout в этом видео, плюс да, LinearLayout гораздо быстрее работает, чем ConstraintLayout
@alexvolkov8180
@alexvolkov8180 9 жыл бұрын
Ребят, скажите есть ли смысл сильно заострять внимание на данном способе. Так как он у меня получается, но занимает много времени и не совсем интуитивный.
@romanvariichuk6795
@romanvariichuk6795 9 жыл бұрын
Алексей Волков в андроид разработке 100% будут моменты когда тебе нужно будет изменять UI в RunTime, тоесть когда приложение работает, вот тут то и нужно кодить лейауты ,а не ИКСЕмЛить
@alexvolkov8180
@alexvolkov8180 9 жыл бұрын
Роман Варийчук Понял. Спасибо. Уже столкнулся с такими моментами)
@user-rw7yl4my4t
@user-rw7yl4my4t 4 жыл бұрын
лайк, если ты смотришь 31.12.2019 г.))
@vitaliy07
@vitaliy07 8 жыл бұрын
что это за код в 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();
@TheKrushik
@TheKrushik 8 жыл бұрын
+Віталій Пастух при создании проекта выбери макет Empty Activity
@2ra66it
@2ra66it 8 жыл бұрын
+Віталій Пастух Это тулбар, удали main_activity и content_activity, а также эти строки и программа запустится, однако без тулбара
@nice3point
@nice3point 8 жыл бұрын
+Віталій Пастух с API 22 ActionBar заменили на ToolBar, теперь этот код по умолчанию генерируется. FAB это иконка в виде кружка, обнови SDK до новой версии, 6.0.0, или android N(бета). Для старых проектов нужно будет в Grandle.build(файл в проекте) заменить версию на 23 api и внизу указать билд 22.0.0+ (номер версии можно найти в названии папки в папке с сдк из библиотеки support)
@n.kulyan
@n.kulyan 7 жыл бұрын
LeanerLayout leanerlayout = new LeanerLayout(this); // на что ссилаетса THIS ????????
@start_android
@start_android 7 жыл бұрын
+Назар Кулян www.linkex.ru/java/this.php
@start_android
@start_android 7 жыл бұрын
+Назар Кулян на Activity
@damirnafikov7087
@damirnafikov7087 8 жыл бұрын
У меня почему-то не выравнивает, что делать?
@start_android
@start_android 8 жыл бұрын
сравните код проекта с вашим
@andrewdomingo4109
@andrewdomingo4109 6 жыл бұрын
я в xml привык ручками писать...
@bufferforrnbtaxi5984
@bufferforrnbtaxi5984 5 жыл бұрын
xml для статических объектов
@Nicktimes
@Nicktimes 2 жыл бұрын
Эта писанина щас наверное вымерла
@KoperLogic
@KoperLogic 8 жыл бұрын
Ох это походу для настоящих бизонов, я так не вижу смысла извращаться с кодом чтобы потом запускать на устройстве и смотреть как это будет выглядеть. Уж проще макет создать, но кто я такой. Я всего лишь ленивый новичек
@Ostebanable
@Ostebanable 7 жыл бұрын
Послушал бы внимательно урок, "новичёк". Сказали же, что это вводный урок для динамического создания элементов. А ты говоришь лишь о макете статическом.
When You Get Ran Over By A Car...
00:15
Jojo Sim
Рет қаралды 17 МЛН
Looks realistic #tiktok
00:22
Анастасия Тарасова
Рет қаралды 38 МЛН
THE POLICE TAKES ME! feat @PANDAGIRLOFFICIAL #shorts
00:31
PANDA BOI
Рет қаралды 24 МЛН
Bottom Nav Bar #03 | Material 3 | Jetpack Compose
12:21
Okay Samurai | Code-Along
Рет қаралды 9 М.
CI CD наглядные примеры
22:08
Ulbi TV
Рет қаралды 274 М.
Задача из Собеседования на 160,000 Евро в Год
13:27
Саша Лукин
Рет қаралды 1,1 МЛН
Урок 22. Что такое Intent, Intent Filter, Context
9:41
Start Android
Рет қаралды 66 М.
Что такое API?
6:05
Merion Academy
Рет қаралды 323 М.
Blue Mobile 📲 Best For Long Audio Call 📞 💙
0:41
Tech Official
Рет қаралды 1 МЛН
Best mobile of all time💥🗿 [Troll Face]
0:24
Special SHNTY 2.0
Рет қаралды 3,2 МЛН