list场景下有内存泄露,会一直new SkinView,导致多次滑动之后占用的内存会一直增加
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Ambito
- mobile, performance
Direzione di ricerca
Parti dal metodo getView dell’adapter e segui SkinManager.getInstance().injectSkin fino a getSkinView, concentrandoti sulla creazione evidenziata di SkinView e sulla gestione del tag della view. Ripeti lo scorrimento della lista, quindi verifica che le istanze di SkinView non continuino ad aumentare a ogni chiamata a getView, mentre l’iniezione della skin continua a funzionare per le righe riciclate.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.item, parent, false);
}
SkinManager.getInstance().injectSkin(convertView);
TextView tv = (TextView) convertView.findViewById(R.id.id_tv_title);
tv.setText(getItem(position));
return convertView;
}
public static SkinView getSkinView(View view) {
Object tag = view.getTag(R.id.skin_tag_id);
if (tag == null)
{
tag = view.getTag();
}
if (tag == null) return null;
if (!(tag instanceof String)) return null;
String tagStr = (String) tag;
List<SkinAttr> skinAttrs = parseTag(tagStr);
if (!skinAttrs.isEmpty())
{
changeViewTag(view);
**return new SkinView(view, skinAttrs);**
}
return null;
}
SkinManager.getInstance().injectSkin每次都会new一个SkinView出来,SkinView的总数量等于getView被调用的总次数,而不是getItemCount的值
- Lingua principale
- Java
- Stelle
- 1.7k
- Fork
- 364
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di hongyangAndroid/AndroidChangeSkin
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 20/100
-
上google市场会被提示下载外包apk.dex 的警告Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
-
动态设置颜色和图片时,换肤失效!Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
图片只能放在drawable下,mapmip下就会有问题Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
hongyangAndroid/AndroidChangeSkin#46 · 3 commenti ·
-
自定义View无法换肤Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
Tutte le issue di hongyangAndroid/AndroidChangeSkin
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
OpenAPITools/openapi-generator#25014 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
openhab/openhab-core#5847 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
apache/parquet-java#3820 ·
I maintainer di solito rispondono entro 1 giorno