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

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

Войти
Регистрация
Восстановить пароль
 
x_Alex_x
17 / 17 / 2
Регистрация: 07.02.2014
Сообщений: 233
#1

Добавить layout на layout - Программирование Android

23.01.2015, 18:27. Просмотров 1023. Ответов 8
Метки нет (Все метки)

Нашёл такой код: layout.add(view); только не понимаю куда его писать. Нужно чтобы один layout можно было использовать в нескольких других.
Сейчас я на главное активити устанавливаю layout так: setContentView(R.layout.main); и теперь в определённое место этого main хочу добавить другой layout.
Покажите пожалуйста подробней как нужно делать.

Добавлено через 1 час 56 минут
Попробую перефразировать: нужно следать класс - элемент, который будет иметь свой layout и экземпляры этого класса можно будет добавлять на активити как, например, кнопки (хотя я даже не знаю можно ли программно добавить кнопку на активити).
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2015, 18:27     Добавить layout на layout
Посмотрите здесь:

При нажатию на кнопку добавить Layout - Программирование Android
не подскажете как по нажатию на кнопку вставить LinearLayout с определенной разметкой в тот Layout где я нахожусь именно в нужное мне...

Можно ли добавить каталог в папку layout? - Программирование Android
Вопрос дурацкий, но нагуглить ничего не получилось. Или формулирую не так или это слишком просто )) Создаю в проекте каталог...

Как программно добавить элемент в уже существующий layout? - Программирование Android
как программно добавить элемент в уже существующий layout? например при нажатии кнопки. нужно что-то обновить? <RelativeLayout...

Квадратный Layout - Программирование Android
Как создать в XML разметке КВАДРАТНЫЙ layout, вычисление размеров можно задать алгоритмом: ставим height и width == match_parent, если...

Drawer Layout - Программирование Android
Имеется Drawer Layout со списком меню. Каждое меню кликабельно и меняет Fragment-ы. При нажатии на пункт списка выполняется метод: ...

TextViews и Layout - Программирование Android
Здравствуйте! Имеется много генерируемых TextView. Как их можно поставить друг за дугом, что бы получился текст, как в обчной статье? ...

Лупа на layout - Программирование Android
Привет. В браузере наверняка все видели "лупу" когда не можете попасть по ссылке, браузер вам увеличивает эту область чтобы вы могли...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
24.01.2015, 01:45     Добавить layout на layout #2
Цитата Сообщение от x_Alex_x Посмотреть сообщение
можно ли программно добавить кнопку на активити
Можно, как и любой View, соответственно и ViewGroup. Только нужно вызвать requestLayout() и invalidate(), а вообще, в нете полно информации по этой теме.
x_Alex_x
17 / 17 / 2
Регистрация: 07.02.2014
Сообщений: 233
24.01.2015, 03:29  [ТС]     Добавить layout на layout #3
contedevel, про кнопки и другие View мне пока понятно. Но в первую очередь меня интересует программное добавление одного layout, созданного в .xml файле в другой layout. Проблема в том, что на layout я могу добавлять только View элементы, а из layout я могу максимум получить его id (int id=R.layout.main). Получается, нужно как-то layout преобразовать во View.
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
24.01.2015, 06:52     Добавить layout на layout #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вам нужен LayoutInflater в нем метод inflate, который вернет Вам View.
x_Alex_x
17 / 17 / 2
Регистрация: 07.02.2014
Сообщений: 233
24.01.2015, 13:49  [ТС]     Добавить layout на layout #5
Спасибо! Это то, что было нужно. Вот такой код получился:
Java
1
2
3
4
5
6
7
8
9
10
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
 
    setContentView(R.layout.first_layout);
    LayoutInflater layInfl = this.getLayoutInflater();
    View v = layInfl.inflate(R.layout.second_layout,null,false);
    LinearLayout linLay = (LinearLayout) findViewById(R.id.linlay);
    linLay.addView(v);
}
Добавлено через 23 минуты
Немного переделал код:
Java
1
2
3
4
5
6
7
8
9
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
 
    setContentView(R.layout.first_layout);
    LayoutInflater layInfl = this.getLayoutInflater();
    LinearLayout linLay = (LinearLayout) findViewById(R.id.linlay);
    View v = layInfl.inflate(R.layout.second_layout,linLay,true);
}
Теперь View v добавляется на linLay сразу в методе inflate.
Но как мне теперь указать параметры размещения v на linLay?
При добавлении после метода inflate такой строки:
Java
1
v.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
возникает ошибка.
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
24.01.2015, 13:54     Добавить layout на layout #6
Прочтите мой первый ответ.
x_Alex_x
17 / 17 / 2
Регистрация: 07.02.2014
Сообщений: 233
24.01.2015, 14:34  [ТС]     Добавить layout на layout #7
contedevel, requestLayout() вроде-бы здесь не нужно, linLay.invalidate() не помогло. Или Вы про информацию в интернете?
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
24.01.2015, 16:17     Добавить layout на layout #8
Мне просто с телефона писать неудобно... Взывать нужно эти методы, они построят Ваш слой, в который Вы добавите свой View новым параметрами

Добавлено через 15 минут
Вот нашел код:
Java
1
2
3
4
5
6
7
8
9
LinearLayout mainLayout = (LinearLayout)findViewById(R.id.mainlayout);
        
    // Добавляем новый ImageView
    ImageView imageView = new ImageView(MainActivity.this);
    imageView.setImageResource(R.drawable.icon);
    LayoutParams imageViewLayoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    imageView.setLayoutParams(imageViewLayoutParams);
  
    mainLayout.addView(imageView);
Видимо addView сам вызывает эти методы

Добавлено через 6 минут
Киньте весь код добавления и текст ошибки
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2015, 17:23     Добавить layout на layout
Еще ссылки по теме:

Android layout - Программирование Android
Доброго времени суток. Подскажите пожалуйста. Проблема такая, есть Activity с кнопками и т. д., по нажатию на кнопку открывается...

Очистить layout - Программирование Android
Доброго времени суток! У меня есть очень большая анкета(около 120 EditText и CheckBox). Мне надо реализовать кнопку Очистить. ...

Разметка layout - Программирование Android
Хочу сделать вот такую разметку. Т.е. как-бы объединить ячейки, чтобы можно было в эту ячейку добавить компонент. Как это можно сделать?

4 кнопки и layout - Программирование Android
Всем. Перечитал много разных тем на stackoverflow, там столько советов и советчиков, что голова пухнет. Большая часть советов о том,...

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


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

Или воспользуйтесь поиском по форуму:
x_Alex_x
17 / 17 / 2
Регистрация: 07.02.2014
Сообщений: 233
24.01.2015, 17:23  [ТС]     Добавить layout на layout #9
Цитата Сообщение от contedevel Посмотреть сообщение
Вот нашел код:
Я переделал свой код чтобы было как здесь и, можно сказать, всё нормально работает, но только если LayoutParams задаю константами. В противном случае мой View заполняет весь экран. Пока что меня это устраивает.
Yandex
Объявления
24.01.2015, 17:23     Добавить layout на layout
Ответ Создать тему
Опции темы

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