я столкнулся с проблемой медленной работы ...Оптимизация производительности для создания представлений во время выполнения
Просто случай:
RelativeLayout myLayout = (RelativeLayout) findViewById(R.id.myrlLayout);
//Adding now 100 Buttons with 100 TextViews below each Button(just a example)
for(i=0;i<100;i++) {
Button btn = new Button(this);
btn.setId(i+1); //Should be a positive integer
//set LayoutParams for Button
RelativeLayout.Layoutparams btn_layoutparams = new RelativeLayout.LayoutParams....
....
myLayout.addView(btn, btn_layoutparams);
TextView mytv = new TextView(this);
mytv.setid(101+i);
//set LayoutParams for Button with referenced to the Button(because the Textview Needs to be
of Button)
....
myLayout.addView(mytv, tv-layoutparams);
}
Что касается до большого количества соображений программно созданного, мой приложение начинает очень медленно ... Я думаю, что это не из-за создания нового представления, а из-за установки LayoutParamters каждый раз для представления. Я не могу найти обходное решение, потому что мои LayoutParams для TextView, например, должны ссылаться на кнопку, созданную ранее. Из-за этого я не могу создать XML-макет-файл или файл в стиле XML, потому что я не могу ссылаться на привязку компоновки tv в XML-файле к кнопке, которая не существует в Moment. По крайней мере, я не нашел пути. Я надеюсь, что кто-то получил представление о том, как заметно повысить производительность при создании такого количества просмотров во время выполнения. Каждый совет приветствуется.
Update относительно answere из rom4ek
Проблема в том, что мне нужно, чтобы подсчитать, сколько просмотров может я добавить в ряд перед экраном шириной используется полностью. Это означает, что мне нужно второе LayoutParams, чтобы добавить следующую кнопку ниже первой кнопки из первой строки. И мне также нужно ссылаться на img-Button, добавленную ранее в LayoutParams .. так что нельзя ссылаться на LayoutParams на кнопку, которая не существует до цикла for.Maybe я полностью пропустил что-то .. У вас есть идея/решения? Спасибо, что ответили.
нашел какое-либо решение? –