Форум программистов, компьютерный форум CyberForum.ru

SetContentView и layoutParams - Android

Восстановить пароль Регистрация
 
bazed
1 / 1 / 1
Регистрация: 23.09.2014
Сообщений: 18
21.05.2015, 11:58     SetContentView и layoutParams #1
Почему когда я не передаю lp в setContentView, lin занимает весь экран, словно у него MATCH_PARENT, хотя я для него через setLayourParams устанавливаю WRAP_CONTENT?

А вот так, (c явной передачей lp) lin рисуется с WRAP_CONTENT
Java
1
2
3
4
5
LinearLayout lin = new LinearLayout(this);
        lin.setOrientation(LinearLayout.VERTICAL);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
        lin.setLayoutParams(lp);
setContentView(lin,lp);
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2015, 11:58     SetContentView и layoutParams
Посмотрите здесь:

Как изменить setContentView Android
Использование атрибута weight в LayoutParams Android
SetContentView Android
Android Как выполнить setContentView из другого класса?
Обязательно ли вызывать setContentView? Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
не спать!
1868 / 1602 / 493
Регистрация: 12.05.2014
Сообщений: 5,796
Завершенные тесты: 1
21.05.2015, 12:02     SetContentView и layoutParams #2
щито?
а можно еще раз, медленнее? )
bazed
1 / 1 / 1
Регистрация: 23.09.2014
Сообщений: 18
21.05.2015, 12:04  [ТС]     SetContentView и layoutParams #3
что конкретно непонятно?
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
21.05.2015, 12:05     SetContentView и layoutParams #4
bazed, ничего не понятно. Вы пробовали делать то же самое не кодом, а через xml? Где, кстати, сам xml layout'а? Почему вы уверены, что элементы (строчки) разметки не занимают всю ширину экрана?
И что за запись такая:
Цитата Сообщение от bazed Посмотреть сообщение
Почему когда я не передаю lp в setContentView
Паблито
не спать!
1868 / 1602 / 493
Регистрация: 12.05.2014
Сообщений: 5,796
Завершенные тесты: 1
21.05.2015, 12:11     SetContentView и layoutParams #5
меня смущает что сначала лаяуту назначаются параметры, а потом в setContentView передается этот же лаяут, а с ним снова параметры
bazed
1 / 1 / 1
Регистрация: 23.09.2014
Сообщений: 18
21.05.2015, 12:18  [ТС]     SetContentView и layoutParams #6
Так я и говорю, если я передаю только лэйаут (lin), то он рисуется без учета переданных ему параметров (lp)
А если передаю и lin и lp, тогда все рисуется как задумывалось.

CoolMind, потому что я посмотрел результат на эмуляторе, как же еще? Передача lp в setContentView изменяет отображаение
Паблито
не спать!
1868 / 1602 / 493
Регистрация: 12.05.2014
Сообщений: 5,796
Завершенные тесты: 1
21.05.2015, 13:41     SetContentView и layoutParams #7
Цитата Сообщение от bazed Посмотреть сообщение
А если передаю и lin и lp, тогда все рисуется как задумывалось
значит так и надо делать

метод setContentView с одним параметром просит на вход не какой-нибудь Layout, а View
а что бы через inflater создать вью из лаяута понадобится id этого лаяута, которое программно задается через ж..у
а через xml легко и просто
bazed
1 / 1 / 1
Регистрация: 23.09.2014
Сообщений: 18
21.05.2015, 13:50  [ТС]     SetContentView и layoutParams #8
Паблито, тут роли не играет, можно и View передать, кнопку например. То же самое выходит.

Без передачи в setContentView вторым аргументом layoutParams ничего не выходит
То есть setLayoutParams не дает эффекта, все равно надо передавать LayoutParams вместе с View
Паблито
не спать!
1868 / 1602 / 493
Регистрация: 12.05.2014
Сообщений: 5,796
Завершенные тесты: 1
21.05.2015, 13:59     SetContentView и layoutParams #9
Цитата Сообщение от bazed Посмотреть сообщение
То есть setLayoutParams не дает эффекта, все равно надо передавать LayoutParams вместе с View
да, я это и говорю уже второй раз
bazed
1 / 1 / 1
Регистрация: 23.09.2014
Сообщений: 18
21.05.2015, 14:01  [ТС]     SetContentView и layoutParams #10
Паблито, так а почему так?
Паблито
не спать!
1868 / 1602 / 493
Регистрация: 12.05.2014
Сообщений: 5,796
Завершенные тесты: 1
21.05.2015, 14:01     SetContentView и layoutParams #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
public void setContentView (View view)
Added in API level 1

Set the activity content to an explicit view. This view is placed directly into the activity's view hierarchy. It can itself be a complex view hierarchy. When calling this method, the layout parameters of the specified view are ignored. Both the width and the height of the view are set by default to MATCH_PARENT. To use your own layout parameters, invoke setContentView(android.view.View, android.view.ViewGroup.LayoutParams) instead.
жирненьким выделил основную мысль
bazed
1 / 1 / 1
Регистрация: 23.09.2014
Сообщений: 18
21.05.2015, 14:08  [ТС]     SetContentView и layoutParams #12
Паблито, теперь все ясно, спасибо
Spelcrawler
521 / 491 / 110
Регистрация: 12.03.2014
Сообщений: 1,640
Завершенные тесты: 1
21.05.2015, 16:57     SetContentView и layoutParams #13
bazed, а еще можно сначала задать лейаут в качестве contentView, а потом ему назначить параметры, тогда тоже нормально отработает)
Yandex
Объявления
21.05.2015, 16:57     SetContentView и layoutParams
Ответ Создать тему
Опции темы

Текущее время: 19:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru