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

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

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

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

21.05.2015, 11:58. Просмотров 524. Ответов 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);
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2015, 11:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос SetContentView и layoutParams (Программирование Android):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Использование атрибута weight в LayoutParams - Программирование AndroidИспользование атрибута 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
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,799
Завершенные тесты: 1
21.05.2015, 12:02 #2
щито?
а можно еще раз, медленнее? )
0
bazed
1 / 1 / 1
Регистрация: 23.09.2014
Сообщений: 18
21.05.2015, 12:04  [ТС] #3
что конкретно непонятно?
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
21.05.2015, 12:05 #4
bazed, ничего не понятно. Вы пробовали делать то же самое не кодом, а через xml? Где, кстати, сам xml layout'а? Почему вы уверены, что элементы (строчки) разметки не занимают всю ширину экрана?
И что за запись такая:
Цитата Сообщение от bazed Посмотреть сообщение
Почему когда я не передаю lp в setContentView
0
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,799
Завершенные тесты: 1
21.05.2015, 12:11 #5
меня смущает что сначала лаяуту назначаются параметры, а потом в setContentView передается этот же лаяут, а с ним снова параметры
0
bazed
1 / 1 / 1
Регистрация: 23.09.2014
Сообщений: 18
21.05.2015, 12:18  [ТС] #6
Так я и говорю, если я передаю только лэйаут (lin), то он рисуется без учета переданных ему параметров (lp)
А если передаю и lin и lp, тогда все рисуется как задумывалось.

CoolMind, потому что я посмотрел результат на эмуляторе, как же еще? Передача lp в setContentView изменяет отображаение
0
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,799
Завершенные тесты: 1
21.05.2015, 13:41 #7
Цитата Сообщение от bazed Посмотреть сообщение
А если передаю и lin и lp, тогда все рисуется как задумывалось
значит так и надо делать

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

Без передачи в setContentView вторым аргументом layoutParams ничего не выходит
То есть setLayoutParams не дает эффекта, все равно надо передавать LayoutParams вместе с View
0
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,799
Завершенные тесты: 1
21.05.2015, 13:59 #9
Цитата Сообщение от bazed Посмотреть сообщение
То есть setLayoutParams не дает эффекта, все равно надо передавать LayoutParams вместе с View
да, я это и говорю уже второй раз
0
bazed
1 / 1 / 1
Регистрация: 23.09.2014
Сообщений: 18
21.05.2015, 14:01  [ТС] #10
Паблито, так а почему так?
0
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,799
Завершенные тесты: 1
21.05.2015, 14:01 #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.
жирненьким выделил основную мысль
1
bazed
1 / 1 / 1
Регистрация: 23.09.2014
Сообщений: 18
21.05.2015, 14:08  [ТС] #12
Паблито, теперь все ясно, спасибо
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
21.05.2015, 16:57 #13
bazed, а еще можно сначала задать лейаут в качестве contentView, а потом ему назначить параметры, тогда тоже нормально отработает)
0
Yandex
Объявления
21.05.2015, 16:57
Ответ Создать тему
Опции темы

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