Каков наилучший способ добавить виды на макет из кода в Android? - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть loop в моем коде, чтобы добавить Views к Layout, следующий код - Loop which is present in another loop, и у меня так много таких циклов, Activity takes so much time to start как с этим справиться?

foreach (InfoQuery item in InfoList)
        {


            if (item == "kitten")
            {
                if (!done)
                {
                    TextView view= new TextView(ApplicationContext);
                    view.LayoutParameters = mainLayout.LayoutParameters;
                    view.TextSize = TypedValue.ApplyDimension(ComplexUnitType.Sp, 3, ApplicationContext.Resources.DisplayMetrics);
                    view.SetPadding((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, ApplicationContext.Resources.DisplayMetrics), 0, (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, ApplicationContext.Resources.DisplayMetrics), 0);
                    view.Text = item.position;
                    layout2.AddView(view,0);
                    done = true;
                }

                TextView view2= new TextView(ApplicationContext);
                view2.LayoutParameters = mainLayout.LayoutParameters;
                view2.TextSize = TypedValue.ApplyDimension(ComplexUnitType.Sp, 3, ApplicationContext.Resources.DisplayMetrics); ;
                view2.SetPadding((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 30, ApplicationContext.Resources.DisplayMetrics), 0, (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, ApplicationContext.Resources.DisplayMetrics), 0);
                view2.SetTextColor(Color.Black);
                view2.Text = item.position;
                layout2.AddView(view2);
            }
        }

1 Ответ

0 голосов
/ 15 декабря 2018

Не следует добавлять гигантский набор элементов в макет в Android.Вместо этого используйте просмотрщик или просмотр списка.Добавление всех видов, помимо медленного, занимает тонну ОЗУ и много времени для рисования, даже если его нет на экране.

...