Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
x_Alex_x
17 / 17 / 3
Регистрация: 07.02.2014
Сообщений: 233
#1

Добавить layout на layout

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

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

Добавлено через 1 час 56 минут
Попробую перефразировать: нужно следать класс - элемент, который будет иметь свой layout и экземпляры этого класса можно будет добавлять на активити как, например, кнопки (хотя я даже не знаю можно ли программно добавить кнопку на активити).

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2015, 18:27
Ответы с готовыми решениями:

Анимированный дизайн смены Layout или просто выдвигаемый layout
Ну, думаю тут и так всё понятно. Я просто не знаю, какие ключевые слова вводить...

At android.widget.LinearLayout.setChildFrame Layout в Layout-те
Нужен совет бывалых. У меня есть активити которое запускается с мейн активити,...

Не хочет работать в layout, но включается в layout-land
доброе утро ! пишу первое приложение. обычный мейн.хмель выглядит вот так :...

При нажатию на кнопку добавить Layout
не подскажете как по нажатию на кнопку вставить LinearLayout с определенной...

Можно ли добавить каталог в папку layout?
Вопрос дурацкий, но нагуглить ничего не получилось. Или формулирую не так или...

8
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
24.01.2015, 01:45 #2
Цитата Сообщение от x_Alex_x Посмотреть сообщение
можно ли программно добавить кнопку на активити
Можно, как и любой View, соответственно и ViewGroup. Только нужно вызвать requestLayout() и invalidate(), а вообще, в нете полно информации по этой теме.
1
x_Alex_x
17 / 17 / 3
Регистрация: 07.02.2014
Сообщений: 233
24.01.2015, 03:29  [ТС] #3
contedevel, про кнопки и другие View мне пока понятно. Но в первую очередь меня интересует программное добавление одного layout, созданного в .xml файле в другой layout. Проблема в том, что на layout я могу добавлять только View элементы, а из layout я могу максимум получить его id (int id=R.layout.main). Получается, нужно как-то layout преобразовать во View.
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
24.01.2015, 06:52 #4
Лучший ответ Сообщение было отмечено x_Alex_x как решение

Решение

Вам нужен LayoutInflater в нем метод inflate, который вернет Вам View.
0
x_Alex_x
17 / 17 / 3
Регистрация: 07.02.2014
Сообщений: 233
24.01.2015, 13:49  [ТС] #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));
возникает ошибка.
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
24.01.2015, 13:54 #6
Прочтите мой первый ответ.
0
x_Alex_x
17 / 17 / 3
Регистрация: 07.02.2014
Сообщений: 233
24.01.2015, 14:34  [ТС] #7
contedevel, requestLayout() вроде-бы здесь не нужно, linLay.invalidate() не помогло. Или Вы про информацию в интернете?
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
24.01.2015, 16:17 #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 минут
Киньте весь код добавления и текст ошибки
1
x_Alex_x
17 / 17 / 3
Регистрация: 07.02.2014
Сообщений: 233
24.01.2015, 17:23  [ТС] #9
Цитата Сообщение от contedevel Посмотреть сообщение
Вот нашел код:
Я переделал свой код чтобы было как здесь и, можно сказать, всё нормально работает, но только если LayoutParams задаю константами. В противном случае мой View заполняет весь экран. Пока что меня это устраивает.
0
24.01.2015, 17:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2015, 17:23

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

Layout
Здравствуйте! На layout кидаю изображение через ImaageView, при эмуляции по...

TextViews и Layout
Здравствуйте! Имеется много генерируемых TextView. Как их можно поставить друг...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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