Verileri görüntülemek için bir metin görünümü olan özel bir liste görünümü var, bellek kullanımını en iyi duruma getirmek için görünüm tutucu desenini kullanıyorum, ancak sürekli liste görünümünde kaydırma yaparken, bellek ayırma artışı var (android monitör belleğinde) android stüdyo içinde)Liste görünümü bellek kullanımı
Sorunu nasıl çözmeliyim?
@Override
public View getView(int position, View view, ViewGroup parent) {
ViewContainer viewContainer;
View rowView = view;
if(rowView==null){
LayoutInflater inflater = context.getLayoutInflater();
rowView= inflater.inflate(R.layout.lv2rowlayout, null, true);
viewContainer = new ViewContainer();
//---get a reference to all the views on the xml layout---
viewContainer.txten = (TextView) rowView.findViewById(R.id.txten);
viewContainer.txtfars = (TextView) rowView.findViewById(R.id.txtfars);
String s ;
Typeface custom_font;
viewContainer.txten.setTextSize(TypedValue.COMPLEX_UNIT_SP,sd.enSize);
s="fonts/"+sd.enFont;
custom_font = Typeface.createFromAsset(context.getAssets(),s);
viewContainer.txten.setTypeface(custom_font);
viewContainer.txten.setTextColor(sd.enColor);
viewContainer.txtfars.setTextSize(TypedValue.COMPLEX_UNIT_SP,sd.farssize);
s="fonts/"+sd.farsFont;
custom_font = Typeface.createFromAsset(context.getAssets(),s);
viewContainer.txtfars.setTypeface(custom_font);
viewContainer.txtfars.setTextColor(sd.farsColor);
rowView.setTag(viewContainer);
}
else {
viewContainer = (ViewContainer) rowView.getTag();
}
//---customize the content of each row based on position---
viewContainer. txten.setText(en[position]);
viewContainer.txtfars.setText(fars[position]);
return rowView;
}
Yazı tipiniz pozisyona bağlı olmadığından, neden global bir değişken bildirip liste görünümü oluşturucuda başlatmıyorsunuz? – Kaustuv
evet doğru yoldan teşekkürler u –