Как накачать несколько XML-файлов в макете без ущерба для производительности.(около 70 макетов) - PullRequest
0 голосов
/ 04 июня 2018

У меня есть около 70 файлов макета XML, которые нужно накачать в упражнении (например, список полей ввода. Например, огромная форма).Загрузка занимает около 3-4 секунд.Я не могу использовать RecyclerView, потому что он падает при открытии клавиатуры.Кроме того, скольжение вверх и вниз идет медленно)

Пожалуйста, предложите способ быстрого открытия действия.

1 Ответ

0 голосов
/ 05 июня 2018

Для тех, кто сталкивался с подобными проблемами, я нашел решение: я использовал 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]);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...