【问题标题】:What is the best way to add views to layout from code in android?从android中的代码向布局添加视图的最佳方法是什么?
【发布时间】:2018-12-15 19:40:31
【问题描述】:

我的代码中有loopViews 添加到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);
            }
        }

【问题讨论】:

  • 最好按照下面的建议使用 RecyclerView。

标签: android xamarin xamarin.android android-view android-inflate


【解决方案1】:

您不应该在 Android 的布局中添加大量项目。请改用 recyclerview 或 listview。添加所有视图除了速度很慢之外,还需要大量 RAM,并且即使它不在屏幕上也需要大量时间来绘制。

【讨论】:

    猜你喜欢
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 2016-09-17
    • 1970-01-01
    • 2012-01-22
    相关资源
    最近更新 更多