android - 如何在不影响性能的情况下在布局中扩展多个 XML 文件。(约 70 种布局)
问题描述
我有大约 70 个 XML 布局文件要在一个活动中进行扩充(比如输入字段列表。比如一些巨大的表单)。加载大约需要 3-4 秒。我无法使用 RecyclerView,因为它在打开键盘时崩溃。还有就是上下滑动很慢)
请提出一些快速打开活动的方法。
解决方案
对于那些面临类似问题的人,我找到了一个解决方案:我使用了 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]);
}
}
推荐阅读
- python - tensorflow-如何使用可变图像的大小进行 conv2d_transpose?
- android - 更新 Android Studio 后,Android 构建命令失败
- c# - 如何在我的 Web 项目中调用我的统一函数?
- angular5 - 无法使用 httpclient 访问 Angular 5 中的本地 json 数据
- python - Django计算含税总价
- asp.net - 如何在没有任何 web 服务和 webapi 的情况下从网站访问和编辑 HTML
- ios - 在 UIImageView 中加载 gif 图像时减少内存消耗
- c# - ListView 在单击时显示模式的详细信息
- merge - 处理多个查询作为一个结果
- excel - 从多个 Excel 文件复制数据