Возможно, попытайтесь загрузить данные в AsyncTask
в фоновом режиме, а затем отобразить эти данные, когда они полностью загружены.
Во время загрузки данных на экране отображается логотип загрузки или индикатор выполнения, изатем отобразите свои данные в виде сетки.
Что-то вроде этого:
new AsyncTask<Void, String, String>(){
@Override
protected void onPreExecute() {
//Display your loader
}
@Override
protected String doInBackground(Void... voids) {
//Load your datas
return null;
}
@Override
protected void onPostExecute(String msg) {
//Close your loader
//Display your datas
}
}.execute(null,null,null);
Таким образом, поток пользовательского интерфейса не будет заблокирован, а отображение по-прежнему будет плавным.