首页 > 解决方案 > 如何在不影响性能的情况下在布局中扩展多个 XML 文件。(约 70 种布局)

问题描述

我有大约 70 个 XML 布局文件要在一个活动中进行扩充(比如输入字段列表。比如一些巨大的表单)。加载大约需要 3-4 秒。我无法使用 RecyclerView,因为它在打开键盘时崩溃。还有就是上下滑动很慢)

请提出一些快速打开活动的方法。

标签: androidperformanceandroid-layout

解决方案


对于那些面临类似问题的人,我找到了一个解决方案:我使用了 AsyncTask (其中充气部分在后台完成,只是添加视图在前台完成)

public class MyAsync extends AsyncTask<Void, View, Void> {
  LayoutInflater inflater;
  Activity activity;
 LinearLayout parent;
  List<Integer> layoutIds;

public MyAsync(Activity activity,LinearLayout linLayout,List<Integer> layoutIds) {
    this.activity = activity;
    this.parent = linLayout;
    this.layoutIds = layoutIds;
}

@Override
protected void onPreExecute() {
    super.onPreExecute();
    inflater = activity.getLayoutInflater();
}

@Override
protected Void doInBackground(Void... voids) {
    for (int i = 0; i < layoutIds.size(); i++) {
        View view = inflater.inflate(layoutIds.get(i), null);
        publishProgress(view);
    }
    return null;
}


@Override
protected void onProgressUpdate(View... view) {
    super.onProgressUpdate(view);

    parent.addView(view[0]);
  }
}

推荐阅读