Attualmente sto sviluppando un frammento che contiene elenchi di album. La struttura è piuttosto semplice:Come caricare i frammenti più velocemente?
Il dispositivo di scorrimento orizzontale contiene LinearLayour (orizzontale). Per aggiungere un album con la lista dei brani, ho creato una vista separata che consiste in un'immagine di copertina e una listview. La listview è anche personalizzata dove gli oggetti sono linearlayout con 3 textview. Poi lo gonfio, popolo la lista e aggiungo al cursore Orizzontale.
Il problema si verifica se ho più di 2 elenchi di album. Ci vuole del tempo per aprire un frammento.
Un'altra cosa è quando provo a scorrere (orizzontalmente), a volte si ferma per un breve momento, il che rende l'esperienza utente negativa.
Quello che sto cercando di dire è che ho visto viste simili e funzionano velocemente e senza ritardi. È possibile in qualche modo ottimizzarlo? Oppure è possibile in modo che il frammento si apra subito e poi le liste vengano caricate in seguito (tipo di lazyload).
LISTVIEW ARTICOLO:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#ccffffff"
android:padding="10dp" >
<TextView
android:id="@+id/album_list_item_number"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:text=""
android:gravity="center|center_vertical"
android:layout_gravity="center|center_vertical"
android:textColor="#333333"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/album_list_item_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
android:layout_weight="1"
android:gravity="left|center_vertical"
android:layout_gravity="left|center_vertical"
android:textColor="#333333"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/album_list_item_time"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:text=""
android:gravity="center|center_vertical"
android:layout_gravity="center|center_vertical"
android:textColor="#333333"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
che popolano la LISTA e aggiungendo VISTA ORIZZONTALE SLIDER:
View albumView = inflater.inflate(R.layout.artist_album_col, container, false);
//setting cover
ImageView albumCover = (ImageView) albumView.findViewById(R.id.artistAlbumCover);
albumCover.setImageDrawable(getResources().getDrawable(R.drawable.albumcover)); //cover
ListView albumList = (ListView) albumView.findViewById(R.id.artistSongList);
// create the grid item mapping
String[] from = new String[] {"num", "title", "time"};
int[] to = new int[] { R.id.album_list_item_number, R.id.album_list_item_title, R.id.album_list_item_time};
// prepare the list of all records
List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();
for(int i = 0; i < 24; i++){
HashMap<String, String> map = new HashMap<String, String>();
map.put("num", "" + i);
map.put("title", "title title title title title title title title title " + i);
map.put("time", "time " + i);
fillMaps.add(map);
}
// fill in the grid_item layout
SimpleAdapter adapter = new SimpleAdapter(mContext, fillMaps, R.layout.album_list_item, from, to);
albumList.setAdapter(adapter);
albumContainer.addView(albumView);
è possibile fornire codice sufficiente per vedere come si creano i frammenti e gli adattatori in modo che la comunità SO possa essere in grado di esaminarla e fornire suggerimenti appropriati? – petey
Usa Traceview per capire dove viene speso il tuo tempo. – CommonsWare