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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
bazed
1 / 1 / 1
Регистрация: 23.09.2014
Сообщений: 18
#1

SetContentView и layoutParams - Программирование Android

21.05.2015, 11:58. Просмотров 506. Ответов 12
Метки нет (Все метки)

Почему когда я не передаю 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
Посмотрите здесь:

Использование атрибута weight в LayoutParams - Программирование Android
Activity состоит из таблицы, каждая строка которой также является таблицей и задается динамически. Нужно отрегулировать ширину ячеек, чтобы...

SetContentView - Программирование Android
Можно ли метод setContentView(R.layout.main) вызывать в методе скажем onResume() или onNewIntent() в активити ??или только можно в...

Как изменить setContentView - Программирование Android
Пытаюсь поменять layout и у меня ни чего не получается, то есть кнопки не кликабельны. В первый раз layout меняется, а дальше ни одно...

Обязательно ли вызывать setContentView? - Программирование Android
Необходимо сделать активность (first), которая будет, например, заставкой с подсказками перед основной активностью (second). Но...

Как выполнить setContentView из другого класса? - Программирование Android
Есть класс "Core" который является "точкой входа" в приложение, и есть класс в котором я меняю контент, но если я просто допишу "extends...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2454 / 1899 / 590
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 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
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
21.05.2015, 12:05     SetContentView и layoutParams #4
bazed, ничего не понятно. Вы пробовали делать то же самое не кодом, а через xml? Где, кстати, сам xml layout'а? Почему вы уверены, что элементы (строчки) разметки не занимают всю ширину экрана?
И что за запись такая:
Цитата Сообщение от bazed Посмотреть сообщение
Почему когда я не передаю lp в setContentView
Pablito
2454 / 1899 / 590
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 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 изменяет отображаение
Pablito
2454 / 1899 / 590
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 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
Pablito
2454 / 1899 / 590
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 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
Паблито, так а почему так?
Pablito
2454 / 1899 / 590
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 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
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
21.05.2015, 16:57     SetContentView и layoutParams #13
bazed, а еще можно сначала задать лейаут в качестве contentView, а потом ему назначить параметры, тогда тоже нормально отработает)
Yandex
Объявления
21.05.2015, 16:57     SetContentView и layoutParams
Ответ Создать тему
Опции темы

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